我正在查看IntStream的文档,我看到了一个toArray方法,但没有办法直接转到List<Integer>
当然,有一种方法可以将Stream转换为List
发布于 2014-05-15 17:48:03
IntStream::boxed
IntStream::boxed将IntStream转换为Stream,然后您可以将其collect为List
theIntStream.boxed().collect(Collectors.toList())boxed方法将IntStream的int原始值转换为Integer对象流。单词"boxing"将int Integer⬌转换过程命名为。参见Oracle Tutorial。
Java 16和更高版本
Java16带来了更短的toList方法。生成unmodifiable list。讨论了here。
theIntStream.boxed().toList() 发布于 2016-10-13 16:28:26
您还可以在流上使用mapToObj(),它接受一个IntFunction并返回一个对象值流,其中包含将给定函数应用于该流的元素的结果。
List<Integer> intList = myIntStream.mapToObj(i->i).collect(Collectors.toList());发布于 2016-03-27 08:06:54
您可以使用Eclipse Collections中提供的基元集合,并避免装箱。
MutableIntList list =
IntStream.range(1, 5)
.collect(IntArrayList::new, MutableIntList::add, MutableIntList::addAll);注意:我是Eclipse Collections的贡献者。
https://stackoverflow.com/questions/23674624
复制相似问题