Java でストリームを配列に変換する

Waleed 2023年10月12日
  1. Java で convertStreamToArray() メソッドを使用してストリームを配列に変換する
  2. Java で toArray() メソッドを使用してストリームを配列に変換する
  3. mapToInt() メソッドの使用
Java でストリームを配列に変換する

ストリームは、多くのメソッドをサポートするオブジェクトのコレクションであり、目的の結果を生成するようにカスタマイズできます。

一方、配列は、同じ名前で宣言された同じデータ型変数のコレクションです。配列は、プリミティブデータ型またはクラスのオブジェクトとして定義できます。

配列をプリミティブデータ型として定義すると、実際の値は別のメモリ位置に格納されます。逆に、配列をクラスのオブジェクトとして定義すると、実際のオブジェクトはヒープセグメントに格納されます。

Java で convertStreamToArray() メソッドを使用してストリームを配列に変換する

ストリームには、オブジェクト配列内のストリームの要素とともに配列を返す 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() メソッドを使用してストリームを配列に変換する

Java ストリームを配列に変換するためのもう 1つの事前定義された 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() メソッドが付属しています。これは中間プロセスです。このようにして取得された intStream は、toArray() メソッドを使用して整数配列(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