最简单的方法是将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
的用途是将数组大小的整数转换为新array.
示例代码:
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