Java 无法将随机整数流收集到列表集合中
我一直在寻找如何将IntStream收集到一个列表中,从而生成一个随机的int列表,但编译器一直在抱怨。下面是一段代码:Java 无法将随机整数流收集到列表集合中,java,collections,java-8,java-stream,Java,Collections,Java 8,Java Stream,我一直在寻找如何将IntStream收集到一个列表中,从而生成一个随机的int列表,但编译器一直在抱怨。下面是一段代码: IntStream randIntStream = new Random().ints(1000); List<Integer> randomInts = randIntStream.collect(Collectors.toCollection(ArrayList::new)); 编译器给出的错误: 错误:42,49接口中的java:MethodCollect
IntStream randIntStream = new Random().ints(1000);
List<Integer> randomInts =
randIntStream.collect(Collectors.toCollection(ArrayList::new));
编译器给出的错误:
错误:42,49接口中的java:MethodCollect
java.util.stream.IntStream不能应用于给定类型
必需:java.util.function.Supplier、java.util.function.ObjIntConsumer、java.util.function.BiConsumer
找到:java.util.stream.Collector>原因:无法推断
类型变量R
实际参数列表和形式参数列表的长度不同
在将IntStream收集到列表之前,需要调用IntStreamboxed将其转换为流:
您必须将其装箱。boxedor ThreadLocalRandom.current.ints1000.collectArrayList::new,ArrayList::add,ArrayList::addAll;
IntStream randIntStream = new Random().ints(1000);
List<Integer> randomInts = randIntStream.boxed()
.collect(Collectors.toCollection(ArrayList::new));