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)を結合した新しいリストが作れた。
コメント