java List同士で共通している値を削除する

javaで、List同士で共通している値を削除する手順を記述してます。「retainAll」に対象のListを指定することで可能です。
環境
- OS windows11 home
- java 19.0.1
手順
List同士で共通している値を削除するには、「retainAll」を使用します。
List名.retainAll(List名)
実際に、使用してみます。
import java.util.ArrayList;
import java.util.List;
public class App {
public static void main(String[] args) throws Exception {
List<String> foo = new ArrayList<>();
List<String> bar = new ArrayList<>();
// 値を追加
foo.add("aaa");
foo.add("bbb");
foo.add("ccc");
// 値を追加
bar.add("aaa");
bar.add("ddd");
bar.add("ccc");
System.out.println(foo.retainAll(bar)); // true
System.out.println(foo); // [aaa, ccc]
System.out.println(bar); // [aaa, ddd, ccc]
}
}
共通している箇所以外は削除されていることが確認できます。
インデックス番号も再構築されます。
import java.util.ArrayList;
import java.util.List;
public class App {
public static void main(String[] args) throws Exception {
List<String> foo = new ArrayList<>();
List<String> bar = new ArrayList<>();
// 値を追加
foo.add("aaa");
foo.add("bbb");
foo.add("ccc");
// 値を追加
bar.add("aaa");
bar.add("ddd");
bar.add("ccc");
System.out.println(foo.retainAll(bar)); // true
System.out.println(foo.indexOf("ccc")); // 1
}
}
また、同じ値が複数個あっても全て削除されます。
import java.util.ArrayList;
import java.util.List;
public class App {
public static void main(String[] args) throws Exception {
List<String> foo = new ArrayList<>();
List<String> bar = new ArrayList<>();
// 値を追加
foo.add("aaa");
foo.add("bbb");
foo.add("ccc");
foo.add("bbb");
foo.add("bbb");
// 値を追加
bar.add("aaa");
bar.add("ddd");
bar.add("ccc");
System.out.println(foo.retainAll(bar)); // true
System.out.println(foo); // [aaa, ccc]
}
}
-
前の記事
Thunderbird メッセージを転送するショートカットキー 2023.06.15
-
次の記事
kotlin 文字列から最後に見つかった文字列の後ろにあるものを全て置換する 2023.06.17
コメントを書く