本サイトはプロモーション(広告)が含まれています。

【Java】Listの結合について(addAllメソッドで連結)

【Java】Listの結合について(addAllメソッドで連結)

 javaのListを結合する場合は、addAllメソッドを使用します。

addAll(List): Listを結合する

 gaddAll(List)を使用すると、Listを結合することができます

List<String> list1= new ArrayList <>(Arrays.asList("2", "1", "3"));
List<String> list2= new ArrayList <>(Arrays.asList("3", "5", "4"));
list1.addAll(list2);
System.out.println(list1);

//実行結果 
[2, 1, 3, 3, 5, 4]

実行結果のとおり、Listが結合されることが確認できました。

また、3は数値として重複していますが、重複が排除されること無く残っています。

結合したListの重複を排除する方法

Setのコレクションを使用する場合

 Setのコレクションを使用することで重複を排除することができます。ただし、Listの順序が変わることもあるため、順序を保持する必要がない場合はSetをしようすればよいです。

List<String> list1= new ArrayList <>(Arrays.asList("2", "1", "3"));
List<String> list2= new ArrayList <>(Arrays.asList("3", "5", "4"));
list1.addAll(list2);
System.out.println(list1);
Set<String> set = new HashSet<>();
for(String str : list1) {
    set.add(str);
}
// SetをListに変換
list1 = new ArrayList<String>(set);
System.out.println(list1);

//実行結果
[2, 1, 3, 3, 5, 4]
[1, 2, 3, 4, 5]

上記の例の場合は、

[2, 1, 3, 3, 5, 4] ➡ [1, 2, 3, 4, 5]といった形で順序が変わります。

containsメソッドを使用する方法

 順序を保つ場合は、要素を取り出しcontainsメソッドですでにListに値を含む場合は重複を排除すれば良いです。

List<String> list1= new ArrayList <>(Arrays.asList("2", "1", "3"));
List<String> list2= new ArrayList <>(Arrays.asList("3", "5", "4"));
List<String> list3= new ArrayList <>();
list1.addAll(list2);
System.out.println(list1);
for(String str : list1) {
    // 追加したListに値を含む場合は追加しない
    if (!list3.contains(str)) {
        list3.add(str);
    }
}
System.out.println(list3);

//実行結果
[2, 1, 3, 3, 5, 4]
[2, 1, 3, 5, 4]
[2, 1, 3, 3, 5, 4] ➡ [2, 1, 3, 5, 4]といった形で順序を保ち重複を排除できました。

Javaの記事一覧へ

PAGE TOP