1.用 Steam.collect(Collectors.toCollection())
List<String> list = Arrays.asList("a", "b", "c","d","e");
//用LinkedList收集
List<String> linkedListResult = list.stream().collect(Collectors.toCollection(LinkedList::new));
//用CopyOnWriteArrayList收集
List<String> copyOnWriteArrayListResult = list.stream().collect(Collectors.toCollection(CopyOnWriteArrayList::new));
//用TreeSet收集
TreeSet<String> treeSetResult = list.stream().collect(Collectors.toCollection(TreeSet::new));
//注意类似需要自定义Comparator的容器,如PriorityQueue,可以构建,但无法使用。如:
List<int[]> list = Arrays.asList(new int[]{0,1}, new int[]{2,3});
PriorityQueue<int[]> queue=list.stream().collect(Collectors.toColection(PriorityQueue::new));
2.构建分类成一个key为True和Flase的Map,用partitioningBy()
List<String> list = Arrays.asList("a", "b", "c","dd","ee");
Map<Boolean, List<String>> result = list.stream().collect(partitioningBy(s -> s.length() > 1));
3.构建List并处理,collectingAndThen()
List<String> list = Arrays.asList("java", "python", "C++","php","java");
//收集后转换为不可变List
ImmutableList<String> collect = list.stream().collect(Collectors.collectingAndThen(Collectors.toList(), ImmutableList::copyOf));