如何在stream.collect(Collectors)中指定具体的集合类型

Nir*_*ane 3 java-8 java-stream

我们如何从 Stream.collect() 方法创建一些具体的集合类型

例如,对于下面的示例,我想创建 LinkedList 而不是通用列表。

List<Integer> list = Arrays.asList(10,20,30,40);
        List<Integer> collect3 = list.stream().filter(i ->i%2==0).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

我该如何指定,我需要创建LinkedList

小智 6

您可以使用构造函数引用、LinkedList::new 和 Collectors.toCollection 方法。

list.stream().filter(i ->i%2==0).collect(Collectors.toCollection(LinkedList::new))
Run Code Online (Sandbox Code Playgroud)