大家好,又见面了,我是你们的朋友全栈君。
java8 常用的流操作 stream collect map filter flatMap max min reduce
1 collect(toList())
collect(toList()) 方法由Stream 里的值生成一个列表,是一个及早求值操作。
//Stream的of方法使用一组初始值生成新的Stream
List<String> stream = Stream.of("a", "b", "c").collect(Collectors.toList());
System.out.println(stream);
2 map 的作用
如果有一个函数可以将一种类型的值转换成另外一种类型,map 操作就可以使用该函数,将一个流中的值转换成一个新的流。
//使用map操作将字符串转换为大写形式
List<String> map = Stream.of("a", "ab", "abc").map(String::toUpperCase).collect(Collectors.toList());
System.out.println(map);
3 filter
遍历数据并检查其中的元素时,可尝试使用Stream 中提供的新方法filter。
//遍历出长度大于2的字符串
List<String> filter = Stream.of("a", "ab", "abc").filter(value -> value.length() > 2).collect(Collectors.toList());
System.out.println(filter);
4 flatMap
flatMap 方法可用Stream替换值,然后将多个Stream连接成一个Stream。
//合并多个列表的流
List<String> flatMap = Stream.of(Arrays.asList("a", "b"), Arrays.asList("c", "d"))
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println(flatMap);
5 max和min
Stream 上常用的操作之一是求最大值和最小值。Stream API中的max和min操作足以解决这一问题。
String shortest = Arrays.asList("a", "ab", "abc").stream().min(Comparator.comparing(String::length)).get();
System.out.println(shortest);
6 reduce
reduce操作可以实现从一组值中生成一个值。
int count = Stream.of(1, 2, 3).reduce(0, (acc, element) -> acc + element);
System.out.println(count);
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135899.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...