首页 » Web前端 » phpincludestream技巧_java8stream特点详解原来如斯强大

phpincludestream技巧_java8stream特点详解原来如斯强大

访客 2024-12-13 0

扫一扫用手机浏览

文章目录 [+]

为什么要引入Stream呢?没有Stream的JAVA7以及之前的版本,也一样可以处理数据啊?

这里要提到“函数式”编程了,熟习python和Scala的朋友可能对函数式编程有一定的认知,函数式编程的办法在数据处理上非常的高效,java8 在设计的时候该当是重点考虑了支持函数式编程模式,Stream仅仅是其特性之一,像lamda表达式、函数式接口等特性也都是为函数式编程做事的。

phpincludestream技巧_java8stream特点详解原来如斯强大

如何布局StreamStream.of 方法List工具可以直接获取到Stream;如:stringList.stream()Stream.builder().build(); 办法如何利用stream来高效处理数据

1.数据遍历并处理 forEach方法

phpincludestream技巧_java8stream特点详解原来如斯强大
(图片来自网络侵删)

String[] strs = {"a", "b", "c", "d"};

Stream<String> stringStream = Stream.of(strs);

stringStream.forEach(s -> System.out.println(s));

2. 数据转换 map方法

面向函数式编程,一样平常方向于数据工具是不可变的,当须要改变的时候可以天生新的工具,map便是完成工具的映射;比如将小写字母转为大写字母;

List<String> upperCase = stringStream.map(s -> s.toUpperCase()).collect(Collectors.toList());

3. 数据过滤 filter方法

stream 的filter方法示例

4. findFirst 找到第一个元素

findFirst方法示例

5. Stream 转数组

String[] upperCase = stringStream.map(s -> s.toUpperCase()).toArray(String[]::new);

6. flatMap 处理

7.peek处理

peek也是循环遍历,与forEach的不同之处在于遍历完之后还会返回原有的Stream本身。
forEach没有返回;

stream peek方法示例

8. 其他方法:

.count方法、.skip 方法 .limit 方法 .sort方法 .max求最大值 .min 求最小值 .distinct() 去严惩法;

元素匹配判断:allMatch, anyMatch, and noneMatch

Stream可以转为set或map,与转List的办法类似,通过Collectors供应的toSet、toMap方法

reduce方法

partitioningBy方法

groupingBy方法

更多利用案例可以关注并私信我来获取。

其他特性惰性求值支持是否选择并发打算,通过.parallel()方法实现
标签:

相关文章