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