はじめに
Java では、2 つ以上の配列を 1 つの配列に結合する必要がある場合がよくあります。これは Java 8 のストリーム API を使用して達成できます。この実験では、Java コードを使用して複数の配列を 1 つの配列に結合する方法を学びます。
Java では、2 つ以上の配列を 1 つの配列に結合する必要がある場合がよくあります。これは Java 8 のストリーム API を使用して達成できます。この実験では、Java コードを使用して複数の配列を 1 つの配列に結合する方法を学びます。
まず、次のコマンドを使用して~/project/ディレクトリにArraysJoin.javaという名前の Java ファイルを作成します。
touch ~/project/ArraysJoin.java
Java 8 のストリーム API を使用するために必要なライブラリをインポートします。
import java.util.stream.Stream;
結合したい 2 つの配列を定義します。ここでは、2 つの文字列配列asiaとeuropeを使用します。
String[] asia = new String[]{"India", "Russia", "Japan"};
String[] europe = new String[]{"Poland", "Germany", "France"};
次に、Java 8 の Stream API を使って、両方の配列を結合した新しい配列を初期化します。
String[] countries = Stream.of(asia,europe).flatMap(Stream::of).toArray(String[]::new);
上記の例では、flatMap()メソッドを使って 2 つの配列をマージし、文字列をストリームに変換し、toArray()メソッドでストリームを文字列の配列に変換しています。
最後に、for ループを使って結合した配列の要素を出力します。
for (String country : countries) {
System.out.println(country);
}
指定された型のストリームを返すconcat()メソッドを使用して、2 つのストリームをマージすることもできます。この例では、2 つ以上のストリームを 1 つのストリームに連結する方法を示しています。
Stream<Integer> stream1 = Stream.of(1, 2, 3);
Stream<Integer> stream2 = Stream.of(4, 5, 6);
//concat arrays
Stream<Integer> result = Stream.concat(stream1, stream2);
result.forEach(System.out::println);
次のコマンドを使用して Java ファイルをコンパイルします。
javac ~/project/ArraysJoin.java
次のコマンドを使用して Java プログラムを実行します。
java -cp ~/project ArraysJoin
出力:
インド
ロシア
日本
ポーランド
ドイツ
フランス
1
2
3
4
5
6
この実験では、Java 8 のストリーム API を使用して複数の配列を 1 つの配列に結合する方法を学びました。また、複数のストリームを 1 つのストリームに連結する方法も学びました。配列とストリームの結合と連結の概念は、単一のソース プラットフォームに格納する必要がある大量のデータを扱う際のプログラミングで使用されます。