Stream将 Java 8转换为数组的最简单/最短的方法是什么?
Stream
最简单的方法是将该toArray(IntFunction<A[]> generator)方法与数组构造函数引用一起使用。这在该方法的 API 文档中有所建议。
toArray(IntFunction<A[]> generator)
String[] stringArray = stringStream.toArray(String[]::new);
它所做的是找到一个将整数(大小)作为参数并返回 a 的方法String[],这正是(其中一个重载)new String[]所做的。
String[]
new String[]
你也可以自己写IntFunction:
IntFunction
Stream<String> stringStream = ...; String[] stringArray = stringStream.toArray(size -> new String[size]);
的目的IntFunction<A[]> generator是将数组大小的整数转换为新数组。
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