相关疑难解决方法(0)

Java 8流的toArray和size参数

我想知道stream().toArray [x - > new Integer [x]]如何知道来自哪个数组的大小?我写了一个片段,其中我创建了一个大小为4的整数列表并过滤了值,并创建了一个长度为过滤流的数组,我无法看到任何方法来获取流的大小.

List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);
intList.add(4);


    Integer[] array = intList.stream()
                             .filter(x -> x > 2)
                             .toArray(x -> {
                                System.out.println("x --> " + x);
                                return new Integer[x];
                              });

System.out.println("array length: " + array.length);
Run Code Online (Sandbox Code Playgroud)

上述代码的输出:

x --> 2
array length: 2
Run Code Online (Sandbox Code Playgroud)

最初,片段就像

Integer[] array = intList.stream()
                 .filter(x -> x > 2)
                 .toArray(x -> new Integer[x]);
Run Code Online (Sandbox Code Playgroud)

只是为了理解它传递的x的值,我必须改变它以在lambda中打印x

java lambda java-8 java-stream

1
推荐指数
2
解决办法
1026
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

lambda ×1