当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Stream转Array用法及代码示例


Stream 是支持各种方法的对象序列,这些方法可以通过管道传输以产生所需的结果。

array 是一组由通用名称引用的like-typed 变量。数组可以包含基元数据类型以及类的对象,具体取决于数组的定义。对于基元数据类型,实际值存储在连续的内存位置中。对于类的对象,实际对象存储在堆段中。

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

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

    用法:

    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 <T> Object[] convertStreamToArray(Stream<T> stream) 
        { 
            return stream.toArray(); 
        } 
      
        public static void main(String args[]) 
        { 
            // Create a stream of integers 
            Stream<Integer> 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 生成器):此方法返回一个包含该流元素的数组,使用提供的生成器函数分配返回的数组,以及分区执行或调整大小可能需要的任何其他数组。

    用法:

    <A> A[] toArray(IntFunction<A[]> generator)

    算法

    1. 获取流
    2. 使用 Stream.toArray() 方法将 Stream 转换为数组,传递 Object[]::new 作为生成器函数来分配返回的数组。
    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 <T> Object[] convertStreamToArray(Stream<T> stream) 
        { 
            return stream.toArray(Object[] ::new); 
        } 
      
        public static void main(String args[]) 
        { 
      
            // Create a stream of integers 
            Stream<Integer> 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]
    
  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<Integer> stream) 
        { 
            return stream.mapToInt(Integer::intValue).toArray(); 
        } 
      
        public static void main(String args[]) 
        { 
      
            // Create a stream of integers 
            Stream<Integer> 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]
    


相关用法


注:本文由纯净天空筛选整理自RishabhPrabhu大神的英文原创作品 Program to Convert Stream to an Array in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。