惰式执行 对 stream的操作并不会立即执行,如果用户真正需要的时候才会执行
Stream.of();
@SafeVarargs
@SuppressWarnings("varargs")
public static<T> Stream<T> of(T... values) {
return Arrays.stream(values);
}
Map<String, List<Person>> sortedDatas = datas.stream()
.sorted(Comparator.comparing(Person::getBirthDay, Comparator.nullsLast(Comparator.reverseOrder())))
.collect(Collectors.groupingBy(Person::getDate, LinkedHashMap::new, Collectors.toList()));
Map<Boolean, List<Student>> partitionMap = studentStream.collect(Collectors.partitioningBy(s -> s.getScore() > 60));
这里的 Comparator.nullsLast 标识将空值看做最大值
LinkedHashMap::new 是分组保持原来集合的顺序
分组和分区的区别就在:分组可以有多个组。分区只会有两个区( true 和 false)
对于stream.collect:
Stream 流提供了一个 collect() 方法,可以收集流中的数据到【集合】或者【数组】中去
Stream<String> stream = Stream.of("aaa", "bbb", "ccc", "bbb");
Object[] objects = stream.toArray();
for (Object o: objects) {
System.out.println("data:"+o);
}
String[] strings = stream.toArray(String[]::new);
for(String str : strings){
System.out.println("data:"+str + ",length:"+str.length());
}
Collectors
Collectors.maxBy();
Collectors.minBy();
Collectors.summingInt();/Collectors.summingDouble();/Collectors.summingLong();
Collectors.averagingInt();/Collectors.averagingDouble();/Collectors.averagingLong();
Collectors.counting();
Collectors.partitioningBy
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)