Java:使用Stream API从原始数组创建List

chn*_*ing 3 java java-8 java-stream

我正在尝试从原始数组中创建一个List

int[] values={4,5,2,3,42,60,20};
List<Integer> greaterThan4 =
Arrays.stream(values)
        .filter(value -> value > 4)
        .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

但是最后一个函数collect给了我一个错误,因为它需要其他参数.它需要3个参数Supplier,ObjIntConsumer和BiConsumer.

当我看到只是使用collect(Collectors.toList());并获取列表的不同示例时,我不明白为什么它需要3个参数.

我做错了什么?

Ale*_* C. 10

是的,这是因为Arrays.stream返回IntStream.您可以调用boxed()get a Stream<Integer>然后执行collect操作.

List<Integer> greaterThan4 = Arrays.stream(values)
                                   .filter(value -> value > 4)
                                   .boxed()
                                   .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

  • + 1用于查找真正的问题和真正的解决方案 (3认同)