📌  相关文章
📜  Java中将Stream转换为数组的程序(1)

📅  最后修改于: 2023-12-03 15:01:50.027000             🧑  作者: Mango

Java中将Stream转换为数组的程序

在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为数组是一项必备的技能。