配列を結合する方法

JavaBeginner
オンラインで実践に進む

はじめに

Java では、2 つ以上の配列を 1 つの配列に結合する必要がある場合がよくあります。これは Java 8 のストリーム API を使用して達成できます。この実験では、Java コードを使用して複数の配列を 1 つの配列に結合する方法を学びます。

Java ファイルを作成する

まず、次のコマンドを使用して~/project/ディレクトリにArraysJoin.javaという名前の Java ファイルを作成します。

touch ~/project/ArraysJoin.java

必要なライブラリをインポートする

Java 8 のストリーム API を使用するために必要なライブラリをインポートします。

import java.util.stream.Stream;

2 つの配列を定義する

結合したい 2 つの配列を定義します。ここでは、2 つの文字列配列asiaeuropeを使用します。

String[] asia = new String[]{"India", "Russia", "Japan"};
String[] europe = new String[]{"Poland", "Germany", "France"};

Stream API を使って配列を結合する

次に、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 ファイルをコンパイルする

次のコマンドを使用して Java ファイルをコンパイルします。

javac ~/project/ArraysJoin.java

Java プログラムを実行する

次のコマンドを使用して Java プログラムを実行します。

java -cp ~/project ArraysJoin

出力:

インド
ロシア
日本
ポーランド
ドイツ
フランス
1
2
3
4
5
6

まとめ

この実験では、Java 8 のストリーム API を使用して複数の配列を 1 つの配列に結合する方法を学びました。また、複数のストリームを 1 つのストリームに連結する方法も学びました。配列とストリームの結合と連結の概念は、単一のソース プラットフォームに格納する必要がある大量のデータを扱う際のプログラミングで使用されます。