我一直在研究如何将IntStream“收集”到一个列表中从而生成一个随机的int列表,但是编译器一直在抱怨。下面是一段代码:
IntStream randIntStream = new Random().ints(1000);
List<Integer> randomInts =
randIntStream.collect(Collectors.toCollection(ArrayList::new));
编译器给出的错误:
错误:(42,49)Java:接口java.util.Stream.IntStream中的方法collect不能应用于给定类型;
必需:java.util.function.supplier,java.util.function.objintconsumer,java.util.function.biconsumer
found:java.util.stream.collector>原因:无法推断类型变量R(实际和正式参数列表的长度不同)
在将IntStream
收集到列表
之前,需要调用IntStream#boxed
将其转换为流
:
IntStream randIntStream = new Random().ints(1000);
List<Integer> randomInts = randIntStream.boxed()
.collect(Collectors.toCollection(ArrayList::new));
当流过< code>List时,如何将输出收集到一个链表中? 我尝试了以下方法: 但是这给了 java.util.数组列表不能转换为 java.util.链接列表.
出了什么问题?
问题内容: 为什么下面 不行?只是为了学习而玩弄泛型,我希望我能够在其中插入任何扩展Collection的内容,但会出现此错误: 问题答案: 您已声明是的扩展名。但是根据Java编译器,它可以是 任何 扩展的元素,即。因此,出于这个原因,它必须禁止采用通用类型参数的操作。它不能让你的加入到这可能是。 尝试删除通配符: 这应该工作,因为你可以肯定是一个添加到的。
我有这个代码: 它产生的是 很高兴我应该如何写映射方法来得到一个地图,它会给我:
问题内容: 是否有一种Java集合,我的提取顺序是随机的?例如,我将整数1、2、3放入集合中,当我尝试打印它们时,所有结果都可能是“ 1 2 3”,“ 3 2 1”或“ 1 3 2”? 问题答案: 如果只需要随机序列,可以使用Collections.shuffle
用以下方法对物体进行成像: