如何将Java 8流转换为数组?
2022-08-31 04:00:56
将Java 8转换为数组的最简单/最短的方法是什么?Stream
将Java 8转换为数组的最简单/最短的方法是什么?Stream
最简单的方法是将该方法与数组构造函数引用一起使用。该方法的 API 文档中建议了这一点。toArray(IntFunction<A[]> generator)
String[] stringArray = stringStream.toArray(String[]::new);
它的作用是找到一个方法,该方法将整数(size)作为参数,并返回一个,这正是(重载之一)所做的。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
如果你想从 a 中获取一个值从 1 到 10 的 int 数组,你可以随意使用。Stream<Integer>
IntStream
在这里,我们创建一个 with a 方法,并使用 .然后我们可以调用 的方法。Stream
Stream.of
Stream<Integer>
IntStream
mapToInt
IntStream
toArray
Stream<Integer> stream = Stream.of(1,2,3,4,5,6,7,8,9,10);
//or use this to create our stream
//Stream<Integer> stream = IntStream.rangeClosed(1, 10).boxed();
int[] array = stream.mapToInt(x -> x).toArray();
这是同样的事情,没有 ,只使用 :Stream<Integer>
IntStream
int[]array2 = IntStream.rangeClosed(1, 10).toArray();