當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。