标签:add array cin count 收集 nbsp sys 用户 print
supplier:一个能创造目标类型实例的方法。
accumulator:一个将当元素添加到目标中的方法。
combiner:一个将中间状态的多个结果整合到一起的方法(并发的时候会用到)
List result = stream.collect(() -> new ArrayList<>(), (list, item) -> list.add(item), (one, two) -> one.addAll(two));
List list = Stream.of(1, 2, 3, 4).filter(p -> p > 2).collect(Collectors.toList());
Collector是Stream的可变减少操作接口,Collectors(类收集器)提供了许多常见的可变减少操作的实现。
转换成其他集合:toList、toSet、toCollection、toMap
List<Integer> collectList = Stream.of(1, 2, 3, 4) .collect(Collectors.toList()); System.out.println("collectList: " + collectList); // 打印结果 // collectList: [1, 2, 3, 4]
转成值:
使用collect可以将Stream转换成值。maxBy和minBy允许用户按照某个特定的顺序生成一个值。
Optional<Integer> collectMaxBy = Stream.of(1, 2, 3, 4) .collect(Collectors.maxBy(Comparator.comparingInt(o -> o))); System.out.println("collectMaxBy:" + collectMaxBy.get()); // 打印结果 // collectMaxBy:4
Map<Boolean, List<Integer>> collectParti = Stream.of(1, 2, 3, 4) .collect(Collectors.partitioningBy(it -> it % 2 == 0)); System.out.println("collectParti : " + collectParti); // 打印结果 // collectParti : {false=[1, 3], true=[2, 4]}
数据分组:Collectors.groupingBy
Map<Boolean, List<Integer>> collectGroup= Stream.of(1, 2, 3, 4) .collect(Collectors.groupingBy(it -> it > 3)); System.out.println("collectGroup : " + collectGroup); // 打印结果 // collectGroup : {false=[1, 2, 3], true=[4]}
字符串:Collectors.joining
String strJoin = Stream.of("1", "2", "3", "4") .collect(Collectors.joining(",", "[", "]")); System.out.println("strJoin: " + strJoin); // 打印结果 // strJoin: [1,2,3,4]
标签:add array cin count 收集 nbsp sys 用户 print
原文地址:https://www.cnblogs.com/vickylinj/p/9489576.html