はじめに
Java において、ArrayList はコレクションフレームワークにおける List インターフェイスの実装クラスで、データを格納するために使用されます。2 つの ArrayList を結合することは、実際には 2 つの ArrayList 要素を 1 つの ArrayList に結合するプロセスです。複数のデータストリームがあり、それらを 1 つのストリームにまとめたい場合に役立ちます。
Java において、ArrayList はコレクションフレームワークにおける List インターフェイスの実装クラスで、データを格納するために使用されます。2 つの ArrayList を結合することは、実際には 2 つの ArrayList 要素を 1 つの ArrayList に結合するプロセスです。複数のデータストリームがあり、それらを 1 つのストリームにまとめたい場合に役立ちます。
まず、結合したい 2 つの ArrayList を作成しましょう。整数の 2 つの ArrayList を作成する例を以下に示します。
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
System.out.println(arrList2);
}
}
このコードを実行するには、ターミナルに次のコマンドを入力します。
javac Main.java && java Main
これにより、次のような出力が表示されます。
[1030, 1020, 1010, 1040]
[1050, 1060, 1070]
addAll() メソッドを使って 2 つの ArrayList を結合するには、以下のコードを参考にしてください。
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
System.out.println(arrList2);
// 2 つの ArrayList を結合する
arrList1.addAll(arrList2);
System.out.println("結合後:");
System.out.println(arrList1);
}
}
このコードを実行するには、ターミナルに次のコマンドを入力します。
javac Main.java && java Main
これにより、次のような出力が表示されます。
[1030, 1020, 1010, 1040]
[1050, 1060, 1070]
結合後:
[1030, 1020, 1010, 1040, 1050, 1060, 1070]
flatMap() メソッドと distinct() メソッドを使って、2 つの ArrayList を結合することもできます。以下のコードを参考にしてください。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1030,1070));
System.out.println(arrList2);
// 2 つの ArrayList を結合する
List<Integer> arrList3 = Stream.of(arrList1, arrList2)
.flatMap(Collection::stream)
.distinct()
.collect(Collectors.toList());
System.out.println("結合後:");
System.out.println(arrList3);
}
}
このコードを実行するには、ターミナルに次のコマンドを入力します。
javac Main.java && java Main
これにより、次のような出力が表示されます。
[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
結合後:
[1030, 1020, 1010, 1040, 1050, 1070]
以下は、Java で 2 つの ArrayList を結合するための完成コードです。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1030,1070));
System.out.println(arrList2);
// 2 つの ArrayList を結合する
List<Integer> arrList3 = Stream.of(arrList1, arrList2)
.flatMap(Collection::stream)
.distinct()
.collect(Collectors.toList());
System.out.println("結合後:");
System.out.println(arrList3);
}
}
コードを実行するには、ターミナルに次のコマンドを入力します。
javac Main.java && java Main
これにより、次のような出力が表示されます。
[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
結合後:
[1030, 1020, 1010, 1040, 1050, 1070]
この実験では、Java において List の addAll() メソッドと stream API の flatMap() メソッドを使って 2 つの ArrayList を結合する方法を紹介しました。また、2 つの異なる ArrayList から一意の要素を結合する例も示しました。この実験があなたに役立ったことを願っています!