如何将Java 8 IntStream转换为List?

我正在看IntStream的文档,我看到一个toArray方法,但没有办法直接进入List<Integer>

当然,有一种方法可以将Stream转换为List

IntStream.boxed将一个IntStream转换为一个Stream<Integer> ,然后您可以将其collect到一个列表中:

 theIntStream.boxed().collect(Collectors.toList()) 

您也可以在Stream上使用mapToObj(),它接受一个I​​ntFunction并返回一个对象值stream,该stream包含将给定函数应用到此stream的元素的结果。

 List<Integer> intList = myIntStream.mapToObj(i->i).collect(Collectors.toList()); 

您可以使用Eclipse集合中提供的原始集合,并避免装箱。

 MutableIntList list = IntStream.range(1, 5) .collect(IntArrayList::new, MutableIntList::add, MutableIntList::addAll); 

注意:我是Eclipse Collections的贡献者。