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

📅  最后修改于: 2022-05-13 01:55:19.880000             🧑  作者: Mango

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

Stream 是一系列支持各种方法的对象,这些方法可以流水线化以产生所需的结果。

数组是一组由通用名称引用的类似类型的变量。数组可以包含原始数据类型以及类的对象,具体取决于数组的定义。在原始数据类型的情况下,实际值存储在连续的内存位置。对于类的对象,实际对象存储在堆段中。

以下是将 Stream 转换为 Array 的各种方法:

  1. 使用 toArray() : Stream 提供 toArray() 方法,该方法以 Object 数组的形式返回包含流元素的数组。

    句法:

    stream.toArray()

    算法

    1. 获取流
    2. 使用 Stream.toArray() 方法将 Stream 转换为数组。
    3. 得到的数组是 Object[] 类型的
    4. 返回数组对象[]

    程序:

    // Java Program to convert
    // Stream to array in Java 8
      
    import java.util.*;
    import java.util.stream.*;
    import java.util.function.Function;
      
    class GFG {
      
        // Function to convert Stream to Array
        public static  Object[] convertStreamToArray(Stream stream)
        {
            return stream.toArray();
        }
      
        public static void main(String args[])
        {
            // Create a stream of integers
            Stream stream = Stream.of(1, 2, 3, 4, 5);
      
            // Convert Stream to array
            Object[] array = convertStreamToArray(stream);
      
            // Print the array of stream
            System.out.println("Array from Stream: "
                               + Arrays.toString(array));
        }
    }
    
    输出:
    Array from Stream: [1, 2, 3, 4, 5]
    
  2. 使用 toArray(IntFunction generator) :此方法返回一个包含此流元素的数组,使用提供的生成器函数分配返回的数组,以及分区执行或调整大小可能需要的任何其他数组。

    句法:

    算法

    1. 获取流
    2. 通过传递 Object[]::new 作为生成器函数来分配返回的数组,使用 Stream.toArray() 方法将 Stream 转换为数组。
    3. 得到的数组是 Object[] 类型的
    4. 返回数组对象[]

    程序:

  3. 溪流使用 mapToInt() 到 int[] : Java 8 Stream API 提供了 mapToInt() 方法,该方法返回一个 IntStream,该方法由将给定函数应用于该流的元素的结果组成。这是一个中间操作。然后使用 toArray() 将获得的 IntStream 转换为 int[]。

    算法

    1. 获取整数流
    2. 使用 Stream.mapToInt() 方法将 Stream 转换为 IntStream。
    3. 使用 toArray() 将获得的 IntStream 转换为 int[]
    4. 得到的数组是 Integer 类型的
    5. 返回数组 int[]

    程序:

    // Java Program to convert
    // Stream to array in Java 8
      
    import java.util.*;
    import java.util.stream.*;
    import java.util.function.Function;
      
    class GFG {
      
        // Function to convert Stream to Array
        public static int[] convertStreamToArray(Stream stream)
        {
            return stream.mapToInt(Integer::intValue).toArray();
        }
      
        public static void main(String args[])
        {
      
            // Create a stream of integers
            Stream stream = Stream.of(1, 2, 3, 4, 5);
      
            // Convert Stream to array
            int[] array = convertStreamToArray(stream);
      
            // Print the array of stream
            System.out.println("Array of Integer from Stream: "
                               + Arrays.toString(array));
        }
    }
    
    输出:
    Array of Integer from Stream: [1, 2, 3, 4, 5]