将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