A.retainAll(B)
这个方法的作用就是将A与B的交集存放在A中
如果集合A的大小发生了改变,返回true,即使两个集合完全没有交集,也会返回true。
如果集合A的大小没有发生改变,返回false,即使两个集合完全相同,也会返回false。
所以,retainAll()的返回值并不能用于判断两个集合是否存在交集,只能用于判断集合大小是否发生改变;
应该通过集合的大小判断两个集合是否有交集。

    List origin = new ArrayList<>();
    origin.add("1");
    origin.add("2");
    origin.add("3");
    origin.add("4");
    origin.add("5");
    origin.add("6");
    List list1 = new ArrayList<>();
    list1.add("1");
    list1.add("2");
    list1.add("3");
    list1.add("4");
    list1.add("5");
    list1.add("6");
    System.out.println(origin.retainAll(list1));
    System.out.println(origin);

false
[1, 2, 3, 4, 5, 6]
    List origin = new ArrayList<>();
    origin.add("1");
    origin.add("2");
    origin.add("3");
    origin.add("4");
    origin.add("5");
    origin.add("6");
    List list1 = new ArrayList<>();
    list1.add("8");
    System.out.println(origin.retainAll(list1));
    System.out.println(origin);

true
[]
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐