如何将流收集到列表?

正在加载:

我正在关注一些教程,Java Streams看起来所有这些教程都已经过时了(或者显然我不明白)

 var list = Arrays.stream(new int[] {1,2,3,4,5,6})
            .filter(x -> x > 3)
            .collect(toList());

它告诉我这个错误:

Expected 3 arguments but found 1

但是每个教程都使用这样的收集代码。

怎么了?

他们是 :

Arrays.stream(new int[] {1,2,3,4,5,6})创建一个IntStream,它没有collect采用单个参数的collect方法(的方法IntStream具有签名- <R> R collect(Supplier<R> supplier, ObjIntConsumer<R> accumulator, BiConsumer<R, R> combiner))。即使这样做,toList()也将不适用,因为Java不允许List<int>(即List带有原始元素的)。a的元素List必须是引用类型。

您可以Integer改用包装器类型:

var list = Arrays.stream(new Integer[] {1,2,3,4,5,6})
        .filter(x -> x > 3)
        .collect(toList());

或继续使用IntStream,然后将其装箱到Stream<Integer>以后,以便将元素收集到List<Integer>

var list = Arrays.stream(new int[] {1,2,3,4,5,6})
                 .filter(x -> x > 3)
                 .boxed()
                 .collect(toList());

如果您希望继续使用ints,则可以根据intfilter的元素生成一个数组IntStream

var array = Arrays.stream(new int[] {1,2,3,4,5,6})
                  .filter(x -> x > 3)
                  .toArray();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Java流将多个列表收集到一个列表中?

如何将Java 8流收集到Guava ImmutableCollection中?

如何将流中的元素收集到队列中?

如何将 int 列表收集到 Java 8 中的条目列表

如何简洁地将流收集到地图?

如何将Iterator值收集到50个元素的列表中

如何将元组收集到单独的变量中

如何将HashMap的值收集到向量中?

Java流将数组收集到一个列表中

Java流基于列的总和将Excel CSV收集到列表过滤

AQL如何将文件以其收集名称收集到数组中?

使用流从地图和值,并收集到列表

Java流将对象列表收集到存储桶

使用单个流将多个属性收集到 Map

如何在流中收集到TreeMap中?

有没有一种首选的方式将列表流收集到平面列表中?

如何将Pojo ID的地图收集到Pojo上集合的属性集

如何将Pojo ID的地图收集到Pojo上集合的属性集

如何将Enum.values()映射/收集到HashMap <Enum,SortedMap <Date,String >>

如何将istream_view收集到容器中?

如何将通道中的值收集到 Go 中的切片中?

如何将多个值收集到数组中,然后在IN子句中使用数组

Laravel - 如何将多个数组收集到一个

如何将所有类型收集到 Laravel 中的一张表中?

Hadoop:如何将Reduce的输出收集到Java HashMap中

如何将Futures 0.1迭代器收集到向量中?

如何将向量值函数的输出收集到数据框中?

如何将多变量向量值函数的输出收集到数据框中?

如何根据熊猫中的关系列将ID收集到列表中