Contents
【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]といった形で順序を保ち重複を排除できました。
コメントを残す