📅  最后修改于: 2023-12-03 15:01:50.027000             🧑  作者: Mango
在Java 8之后,引入了Stream API,它可以让我们以函数式编程的方式操作数据。Stream API提供了许多转换操作,例如filter(), map(), reduce()等,但你可能需要将Stream转换为数组,因为有些情况下,数组仍然是更直观,更快速的数据结构。
下面是一个简单的Java程序,它将一个Stream转换为数组。
import java.util.stream.*;
public class StreamToArray {
public static void main(String[] args) {
// 创建一个字符串类型的Stream
Stream<String> stringStream = Stream.of("apple", "banana", "orange");
// 将Stream转换为字符串类型的数组
String[] stringArray = stringStream.toArray(String[]::new);
// 打印数组元素
for (String str : stringArray) {
System.out.println(str);
}
}
}
程序使用的是toArray(IntFunction<A[]> generator)
方法,该方法可以将Stream转换为一个数组,A是数组元素类型,generator是一个数组构造器。
在上面的程序中,我们使用了String[]::new作为 generator,它会创建一个新的String类型的数组。
输出结果:
apple
banana
orange
这就是将Stream转换为数组的基本步骤,你只需要定义一个数组构造器,然后使用toArray(generator)
方法即可。
除了使用toArray()方法,你还可以使用其他方法将Stream转换为数组,例如使用toArray()方法的无参形式(适合将Stream转换为Object[]数组)、collect()方法(适合将Stream转换为其它类型的数组,例如int[])等。
总之,在使用Stream API操作数据的时候,如果需要返回数组类型的结果,转换Stream为数组是一项必备的技能。