java8 常用的流操作 stream collect map filter flatMap max min reduce

                  java8 常用的流操作 stream collect map filter flatMap max min reduce

1 collect(toList())
collect(toList()) 方法由Stream 里的值生成一个列表,是一个及早求值操作。

//Stream的of方法使用一组初始值生成新的Stream
List stream = Stream.of("a", "b", "c").collect(Collectors.toList());
System.out.println(stream);

2 map 的作用
如果有一个函数可以将一种类型的值转换成另外一种类型,map 操作就可以使用该函数,将一个流中的值转换成一个新的流。

//使用map操作将字符串转换为大写形式
List map = Stream.of("a", "ab", "abc").map(String::toUpperCase).collect(Collectors.toList());
System.out.println(map);

3 filter
遍历数据并检查其中的元素时,可尝试使用Stream 中提供的新方法filter。

//遍历出长度大于2的字符串
List 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 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);

 

你可能感兴趣的:(java8)