两个集合List的交集

来源:互联网 发布:雄鹰网校大数据 编辑:程序博客网 时间:2024/05/17 08:32
//获取两个集合的交集list、list1 ,结果保存到listpublic static void main(String[] args) {List<String> list = new ArrayList<String>();List<String> list1 = new ArrayList<String>();list.add("春天");list.add("夏天");list.add("秋天");list.add("冬天");list1.add("春天");list1.add("秋天");list1.add("天");list.retainAll(list1);//如果此 collection 由于调用而发生更改,则返回 trueSystem.out.println(list1.retainAll(list));//发生更改,去除了“天”,list1中去除不在list中的元素System.out.println(list1);//print:[春天, 秋天]List<String> list2 = new ArrayList<String>();list1.remove("天");list2 = list1;System.out.println(list2); //[春天, 秋天]System.out.println(list2.retainAll(list));//没发生更改,返回falseSystem.out.println(list2);//[春天, 秋天]}


public static void main(String[] args) {        ArrayList<String> listA= new ArrayList<String>();        listA.add("Tom");        ArrayList<String> listB= new ArrayList<String>();        listB.add("Jack");        System.out.println(listA.retainAll(listB));//true    }
我们要记住:当集合A的大小改变的时候返回的是True,大小没有改变的时候返回的是False。

正确的使用retainAll方法

public static void main(String[] args) {        ArrayList<String> listA= new ArrayList<String>();        listA.add("Tom");        ArrayList<String> listB= new ArrayList<String>();        listB.add("Tom");        listA.retainAll(listB);        if(listA.size()>0){            System.out.println("这两个集合有相同的交集");        }else{            System.out.println("这两个集合没有相同的交集");        }    }

1、首先调用retainAll的方法

2、通过判断集合的大小,来确定是否存在交集。不能通过方法返回的True和False来判断。

因为:即使两个集合没有交集,也会返回true。

如果集合A数组的大小没有改变,则返回false。如果集合A和集合B是完全相同的集合,也会返回false。

0 0
原创粉丝点击