如何将 Java 8 IntStream 转换为列表?IntStream::boxed

2022-08-31 04:44:52

我正在查看的文档,我看到一种方法,但无法直接转到IntStreamtoArrayList<Integer>

当然,有一种方法可以将 a 转换为 ?StreamList


答案 1

IntStream::boxed

IntStream::boxedIntStream 转换为 Stream<Integer>,然后可以将其收集List 中

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

该方法将 的基元值转换为 Integer 对象流。“boxing”这个词命名了⬌转换过程。请参阅 Oracle 教程boxedintIntStreamintInteger

Java 16 及更高版本

Java 16 带来了更短的 toList 方法。生成不可修改的列表在这里讨论。

theIntStream.boxed().toList() 

答案 2

您还可以在 Stream 上使用 mapToObj(),它采用 IntFunction 并返回一个对象值 Stream,该 Stream 由将给定函数应用于此流的元素的结果组成。

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

推荐