配列を結合する方法

JavaJavaBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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つのストリームに連結する方法も学びました。配列とストリームの結合と連結の概念は、単一のソース プラットフォームに格納する必要がある大量のデータを扱う際のプログラミングで使用されます。