1.构造stream
Stream stream = list.stream();
2.Stream流的之间的转换
List<String> list = stream.collect(Collectors.toList());
Set set = stream.collect(Collectors.toSet());
String str = stream.collect(Collectors.joining()).toString();
3.Stream流的map使用----map方法用于映射每个元素到对应的结果,一对一
List<String> list1 = list.stream().map(String::toUpperCase).collect(Collectors.toList());
4.Stream流的filter使用-----filter方法用于通过设置的条件过滤出元素
String result = list.stream().filter(str -> "李四".equals(str)).findAny().orElse("");
7.Stream流的sort使用-------sorted方法用于对流进行升序排序
List<User> list1 = list.stream().sorted((u1, u2) -> u1.getName().compareTo(u2.getName())).collect(Collectors.toList());
9.Stream流的parallel使用----parallelStream 是流并行处理程序的代替方法
List<String> strings = Arrays.asList("a", "", "c", "", "e","", " ");
long count = strings.parallelStream().filter(string -> string.isEmpty()).count();
11.Stream流的Match使用
allMatch:Stream 中全部元素符合则返回true;
anyMatch:Stream 中只要有一个元素符合则返回 true;
noneMatch:Stream 中没有一个元素符合则返回 true。
12.Stream流的reduce使用----reduce 主要作用是把 Stream 元素组合起来进行操作。
String concat = Stream.of("A", "B", "C", "D").reduce("", String::concat);
double minValue = Stream.of(-4.0, 1.0, 3.0, -2.0).reduce(Double.MAX_VALUE, Double::min);
int sumValue = Stream.of(1, 2, 3, 4).reduce(Integer::sum).get();
13.Stream流的iterate使用
Stream.iterate(1, n -> n + 2).limit(5).forEach(x -> System.out.print(x + " "));
// 从1开始生成一个等差队列:
// 1 3 5 7 9
15.Stream流的groupingBy/partitioningBy使用
groupingBy:分组排序
partitioningBy:分区排序
16.Stream流的summaryStatistics使用---IntSummaryStatistics 用于收集统计信息(如count、min、max、sum和average)的状态对象
List<Integer> numbers = Arrays.asList(1, 5, 7, 3, 9);
IntSummaryStatistics stats = numbers.stream().mapToInt((x) -> x).summaryStatistics();
System.out.println("列表中最大的数 : " + stats.getMax());
System.out.println("列表中最小的数 : " + stats.getMin());
System.out.println("所有数之和 : " + stats.getSum());
System.out.println("平均数 : " + stats.getAverage());
// 列表中最大的数 : 9
// 列表中最小的数 : 1
// 所有数之和 : 25
// 平均数 : 5.0
Java8_Stream
于 2020-08-15 08:43:18 首次发布