二つのListを一つのLisに合致は方法を紹介します。
List.addAll()
addAll()
で引数として渡されたリストのすべてのアイテムをリストに追加することができます。
以下は、二つのリストを一つのリストの両方に追加するコードです。
List<String> list1 = new ArrayList<>();
list1.add("a1");
list1.add("a2");
List<String> list2 = new ArrayList<>();
list2.add("b1");
list2.add("b2");
List<String> joined = new ArrayList<>();
joined.addAll(list1);
joined.addAll(list2);
System.out.println(joined);
結果
[a1, a2, b1, b2]
Guava
Guavaの Iterables
とLists
を利用して、二つのリストを一つ結合することができます。
List<String> list1 = new ArrayList<>();
list1.add("a1");
list1.add("a2");
List<String> list2 = new ArrayList<>();
list2.add("b1");
list2.add("b2");
Iterable<String> joinedIterable = Iterables.unmodifiableIterable(
Iterables.concat(list1, list2));
Collection<String> joined = Lists.newArrayList(joinedIterable);
System.out.println(joined);
結果
[a1, a2, b1, b2]
Apache
Apacheの ListUtils.union()
は二つのリストをひとつ合わせ、合わさったリストを返してくれるAPIです。
List<String> list1 = new ArrayList<>();
list1.add("a1");
list1.add("a2");
List<String> list2 = new ArrayList<>();
list2.add("b1");
list2.add("b2");
List<String> joined = ListUtils.union(list1, list2);
System.out.println(joined);
結果
[a1, a2, b1, b2]
Stream
Streamを利用して1つのリストにすることもできます。
List<String> list1 = new ArrayList<>();
list1.add("a1");
list1.add("a2");
List<String> list2 = new ArrayList<>();
list2.add("b1");
list2.add("b2");
List<String> joined = Stream.concat(list1.stream(), list2.stream())
.collect(Collectors.toList());
System.out.println(joined);
結果
[a1, a2, b1, b2]
Streamのfilter()を使用して、必要なアイテムだけ選んで追加することができます。
次のコードは、1を含む文字列のみを joined
リストに追加するコードです。
List<String> list1 = new ArrayList<>();
list1.add("a1");
list1.add("a2");
List<String> list2 = new ArrayList<>();
list2.add("b1");
list2.add("b2");
List<String> joined = Stream.concat(list1.stream(), list2.stream())
.filter(s->s.contains("1"))
.collect(Collectors.toList());
System.out.println(joined);
結果
[a1, b1]
参考
Related Posts
- Java - AtomicReference使用方法
- Java - CountDownLatchを使用する方法、および例
- Java - ScheduledThreadPoolExecutor使用方法
- Java - SummaryStatisticsの使用方法(count、min、max、average)
- Java8 - 関数型インタフェース (Functional Interface) について
- Java - String配列をint配列に変換する
- Java - ArrayList要素の値を変更する方法、replaceAll()
- Java - 2つのリストが同じかどうかを比較
- Java - 配列から特定のIndex要素を削除する3つの方法
- Java - HashMapソート、4つの方法
- Java - 文字列を配列に変換する方法
- Java - ArrayListが空であることを確認する3つの方法
- Java - ArrayListの巡回、4つの方法
- Java - ArrayListの最大値、最小 値を見つける
- Java - ArrayListの合計、平均値の計算
- Java - HashMap巡回、3つの方法
- Java - do whileとwhileの違い
- Java - Lambda式と関数型インタフェース
- Java - List empty(null)チェック、3つの方法
- Java - ArrayListの初期化、4つの方法
- Java - Stream.reduce()の使い方と例
- Java - 2つのマップを結合する(merge、putAll)
- Java - java.util.Dateをjava.sql.Dateに変換する
- Java - ArrayListをStringに変換する
- Java - ClassNotFoundExceptionの発生原因と解決策
- Java - 非静的メソッドは静的コンテキストから参照できません
- Java - NoSuchMethodErrorの原因と解決策
- Java - JSONライブラリを使用する方法(JSONObject、JSONArray)
- Java - byte[]配列をFileに保存
- Java - byte[]の配列をStringに変換
- Java - ファイルのアクセス権を確認し、変更
- Java - 一時フォルダ(Temp directory)パスを取得する
- Javaでシェルスクリプトを実行
- Java - Streamを配列に変換する
- Java - リスト重複排除、2つの方法