如何将Java 8 IntStream转换为List?
我正在看IntStream
的文档,我看到一个toArray
方法,但没有办法直接进入List<Integer>
当然,有一种方法可以将Stream
转换为List
?
IntStream.boxed
将一个IntStream
转换为一个Stream<Integer>
,然后您可以将其collect
到一个列表中:
theIntStream.boxed().collect(Collectors.toList())
您也可以在Stream上使用mapToObj(),它接受一个IntFunction并返回一个对象值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的贡献者。