在 Java 中將 Stream 轉換為陣列

Waleed 2023年10月12日
  1. 在 Java 中使用 convertStreamToArray() 方法將 Stream 轉換為陣列
  2. 在 Java 中使用 toArray() 方法將 Stream 轉換為陣列
  3. 使用 mapToInt() 方法
在 Java 中將 Stream 轉換為陣列

流是支援許多方法的物件的集合,可以定製以產生我們想要的結果。

另一方面,陣列是用相同名稱宣告的相同資料型別變數的集合。你可以將陣列定義為原始資料型別或類的物件。

如果將陣列定義為原始資料型別,則實際值將儲存在單獨的記憶體位置。相反,如果將陣列定義為類的物件,則實際的 Object 將儲存在堆段中。

在 Java 中使用 convertStreamToArray() 方法將 Stream 轉換為陣列

該流帶有 convertStreamtoArray() 方法,該方法返回一個陣列以及物件陣列中的流元素。

演算法

  1. 首先建立一個整數流。
  2. 使用 Stream.toArray() 方法將整數流轉換為陣列。
  3. 返回的陣列是 Object[] 型別。
  4. 最後返回那個陣列物件。

程式

import java.util.*;
import java.util.stream.*;

public class sampleArticle {
  // Function to convert Stream to Array
  public static <D> Object[] convertStreamToArray(Stream<D> stream) {
    return stream.toArray();
  }

  public static void main(String args[]) {
    // Create a stream of integers
    Stream<Integer> stream = Stream.of(2, 4, 6, 8, 10);

    // 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: [2,4,6,8,10]

在 Java 中使用 toArray() 方法將 Stream 轉換為陣列

另一種將 Java 流轉換為陣列的預定義 java 方法是 toArray()。此方法返回一個包含流元素的陣列。它使用提供的生成器函式為返回的陣列和分割槽執行函式所需的任何其他陣列分配空間。

演算法

  1. 建立流。
  2. 使用 toArray() 方法將流轉換為陣列。你需要將 Object []: new 作為生成器函式傳遞,以便為返回的陣列分配空間以完成這項工作。
  3. 通過這個過程獲得的陣列是 Object[] 型別的。
  4. 最後返回物件 Array[]

程式

import java.util.*;
import java.util.stream.*;
public class sampleArticle {
  // defining function that converts stream into an array
  public static <D> Object[] convertStreamToArray(Stream<D> stream) {
    return stream.toArray(Object[] ::new);
  }

  public static void main(String args[]) {
    // Create a stream of integers
    Stream<Integer> stream1 = Stream.of(2, 4, 6, 8, 10);

    // Convert Stream to array
    Object[] array = convertStreamToArray(stream1);

    // Print the array of stream
    System.out.println("Converted array from Stream: " + Arrays.toString(array));
  }
}

輸出:

Converted array from Stream: [2,4,6,8,10]

使用 mapToInt() 方法

Java 8 Stream 帶有 mapToInt() 方法,該方法返回一個包含給定流元素的整數流。這是一箇中間過程。然後使用 toArray() 方法將由此獲得的 intStream 轉換為整數陣列 (int [])。

演算法

  1. 建立一個整數流
  2. 使用 Stream.mapToInt() 方法將整數流轉換為整數流 (intStream)。
  3. 使用 toArray() 方法將結果流轉換為整數陣列 (int [])。
  4. 通過該方法得到的陣列是整數型別。
  5. 最後返回整數陣列(int [])。

程式

import java.util.*;
import java.util.stream.*;

public class sampleArticle {
  // defining function that converts stream into an 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> stream1 = Stream.of(2, 4, 6, 8, 10);

    // Convert Stream to array
    int[] array = convertStreamToArray(stream1);

    // Print the array of stream
    System.out.println("Converted array from Stream: " + Arrays.toString(array));
  }
}

輸出:

Converted array from Stream: [2,4,6,8,10]

相關文章 - Java Stream

相關文章 - Java Array