Javaのリスト(ArrayList)を結合する方法について書いています。
リストを結合するときには、リストからaddAllメソッドを使ったり、Streamのconcatを使うと良いです。
載せているコードについては、OpenJDKのバージョン19で動作を確認しました。
addAllメソッドで結合する
リストからaddAllメソッドを呼び出すことで、呼び出した元のリストに対して、指定したリストの要素を全て追加することができます。
例えば、下記のように使います。
import java.util.ArrayList;
public class ArrayListMerge {
public void exec() {
ArrayList<String> fruits1 = new ArrayList<String>();
fruits1.add("apple");
fruits1.add("banana");
fruits1.add("peach");
ArrayList<String> fruits2 = new ArrayList<String>();
fruits2.add("orange");
fruits2.add("lemon");
fruits1.addAll(fruits2);
for (String fruit : fruits1) {
System.out.println(fruit);
}
}
}
最初にリストを使えるようにjava.util.ArrayListをインポートしました。
execメソッドの中で、addAllメソッドを使う処理をしています。
メソッドの処理では、まずfruits1変数・fruits2変数対して、リストを作成しました。
fruits1リストに3つの要素、fruits2リストに2つの要素を入れています。
次の処理で、fruits1リストからaddAllメソッドを呼び出しました。
引数に渡しているのは、呼び出し元のリストに追加したい要素を持っているリストです。
今回はfruits2リストを渡しているので、fruits2リストの要素がfruits1リストに全て追加されます。
最後にfruits1リストの要素を出力しました。
プログラムを実行すると、下記のように出力されました。
apple
banana
peach
orange
lemon
fruits1リストに対して、fruits2リストの要素が全て追加されたことが確認できました。
Stream.concatを使って結合する
Streamのconcatメソッドを使うことで、2つのリストを結合して、新しいリストを作成することができます。
例えば、下記のように使うことができます。
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
public class ArrayListMerge {
public void exec() {
ArrayList<String> fruits1 = new ArrayList<String>();
fruits1.add("orange");
fruits1.add("apple");
ArrayList<String> fruits2 = new ArrayList<String>();
fruits2.add("grape");
fruits2.add("banana");
List<String> newFruitsList = Stream.concat(fruits1.stream(), fruits2.stream()).toList();
for (String fruit : newFruitsList) {
System.out.println(fruit);
}
}
}
最初にリストを使えるようにjava.util.ArrayListをインポートしました。
Stream.concatの返り値を受け取るためにjava.util.Listと、Stream.concatを使うためにjava.util.stream.Streamをインポートしています。
execメソッドの中で、concatメソッドを使う処理をしています。
メソッドの処理では、先ほどと同じようにfruits1変数・fruits2変数対して、リストを作成しました。
fruits1リスト・fruits2リストに2つの文字列要素を入れています。
その後の処理で、Streamからconcatメソッドを呼び出して、2つのリストを結合しています。
引数として、第1引数と第2引数に渡しているのは結合したいリストのStreamです。
fruits1リスト・fruits2リストからstreamメソッドを呼び出すことで、リストのStreamを返しています。
その後にtoListメソッドを呼ぶことで、2つのリストを結合したリストを返します。
newFruitsList変数でリストを受け取って、最後にループして出力するようにしました。
プログラムを実行すると、下記のようにリストの要素が出力されました。
orange
apple
grape
banana
fruits1リスト・fruits2リストを結合したnewFruitsListリストを作ることができました。
リストを結合する方法まとめ
今回はJavaでリストを結合する方法について書きました。
記事の内容をまとめると、下記になります。
・Streamのconcatメソッドを使うことで、引数に渡したリスト(Stream)を結合した新しいリストが作れた。

コメント