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
方法(IntStream
的collect
方法具有签名-
)。即使这样,tolist()
也不适用,因为Java不允许list
(即带有基元元素的list
)。列表
的元素必须是引用类型。
您可以改用包装器integer
类型:
var list = Arrays.stream(new Integer[] {1,2,3,4,5,6})
.filter(x -> x > 3)
.collect(toList());
或者继续使用IntStream
,稍后将其框入Stream
,以便将元素收集到列表
:
var list = Arrays.stream(new int[] {1,2,3,4,5,6})
.filter(x -> x > 3)
.boxed()
.collect(toList());
var array = Arrays.stream(new int[] {1,2,3,4,5,6})
.filter(x -> x > 3)
.toArray();
如何使用将多个值收集到一个列表中? 因为我对接口有完全的控制权:还是应该更改方法以返回数组而不是列表?
当流过< code>List时,如何将输出收集到一个链表中? 我尝试了以下方法: 但是这给了 java.util.数组列表不能转换为 java.util.链接列表.
我一直在研究如何将IntStream“收集”到一个列表中从而生成一个随机的int列表,但是编译器一直在抱怨。下面是一段代码: 编译器给出的错误: 错误:(42,49)Java:接口java.util.Stream.IntStream中的方法collect不能应用于给定类型; 必需:java.util.function.supplier,java.util.function.objintconsum
我有以下代码: 如您所见,我需要将< code >流的元素收集到< code >队列中,而不是< code >列表中。但是,没有< code > collectors . to queue()方法。如何将元素收集到< code >队列中?
我有包含项目数组的类存储。 每个项目(类项目)有不同的体积,我正在添加项目到商店。假设我有20个项目,我把10个添加到2或3个不同的商店,我必须根据这些项目的数量在商店中排序。
我对Java8相当陌生。我需要将POJO列表按一定标准转换为group,并在UI上显示。 > 将属于儿童类别的对象列表转换为人员类别。 返回列表。 ...主要代码... 上面的FOR-LOOP不能被Java8 Streams替换吗?