如何将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的贡献者。