//重载⽅法⼀ <R> R collect(Supplier<R> supplier, BiConsumer<R, ? super T> accumulator, BiConsumer<R, R>combiner); //重载⽅法⼆ <R, A> R collect(Collector<? super T, A, R> collector);
ArrayList::new,创建⼀个ArrayList作为累加器
List::add,对流中元素的操作就是直接添加到累加器中
reduce操作, 对⼦任务归集结果addAll,后⼀个⼦任务的结果直接全部添加到
前⼀个⼦任务结果中
CH_ID 是⼀个unmodifiableSet集合
List::add,对流中元素的操作就是直接添加到累加器中
reduce操作, 对⼦任务归集结果addAll,后⼀个⼦任务的结果直接全部添加到
前⼀个⼦任务结果中
CH_ID 是⼀个unmodifiableSet集合
小例子
List<String> list = Arrays.asList("sdfsdf","xxxx","bbb","bbb"); //List<String> results = list.stream().collect(Collectors.toList()); //list.stream().collect(Collectors.toSet()); //List<String> result = list.stream().collect(Collectors.toCollection(LinkedList::new)); List<String> result = list.stream().collect(Collectors.toCollection(CopyOnWriteArrayList::new)); Set<String> stringSet = list.stream().collect(Collectors.toCollection(TreeSet::new)); System.out.println(result); System.out.println(stringSet);
控制台输出

本文作者为DBC,转载请注明。