将Java 8 Stream转换为数组的最简单/最快捷的方法是什么?

最佳答案

最简单的方法是将toArray(IntFunction<A[]> generator)方法与数组构造函数引用一起使用。这在API documentation for the method中建议。

String[] stringArray = stringStream.toArray(String[]::new);

它的作用是找到一个以整数(大小)作为参数的方法,并返回String[],而new String[]正是这种方法(重载之一)。

您还可以编写自己的IntFunction:
Stream<String> stringStream = ...;
String[] stringArray = stringStream.toArray(size -> new String[size]);
IntFunction<A[]> generator的目的是将整数(数组的大小)转换为新数组。

示例代码:
Stream<String> stringStream = Stream.of("a", "b", "c");
String[] stringArray = stringStream.toArray(size -> new String[size]);
Arrays.stream(stringArray).forEach(System.out::println);

打印品:
a
b
c

07-24 09:37
查看更多