小编典典

如何将 Java 8 流转换为数组?

all

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


阅读 133

收藏
2022-02-28

共1个答案

小编典典

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

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

它所做的是找到一个将整数(大小)作为参数并返回 a 的方法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
2022-02-28