无法将随机整数流收集到列表集合中

时间:2019-04-07 15:21:09

标签: java collections java-8 java-stream

我一直在寻找如何将IntStream“收集”到List中从而生成一个随机的int列表,但是编译器一直在抱怨。下面的代码片段:

IntStream randIntStream = new Random().ints(1000);
List<Integer> randomInts =
randIntStream.collect(Collectors.toCollection(ArrayList::new));

编译器给出的错误:

  

错误:(42,49)java:接口中的方法收集   java.util.stream.IntStream不能应用于给定类型;

     

必填:java.util.function.Supplier,java.util.function.ObjIntConsumer,java.util.function.BiConsumer

     

找到:java.util.stream.Collector>原因:无法推断   类型变量R       (实际和正式论点列表的长度不同)

1 个答案:

答案 0 :(得分:3)

在将IntStream收集到List<Integer>之前,需要调用IntStream#boxed将其转换为Stream<Integer>

IntStream randIntStream = new Random().ints(1000);
List<Integer> randomInts = randIntStream.boxed()
    .collect(Collectors.toCollection(ArrayList::new));