@Test public void reTian(){ int[] arr1={1,2,3,4}; int[] arr2={1,2,3,5}; int[] arr3={5,6,7,8}; int[] arr4={1,2,3,4}; initList(arr1, arr2, arr3, arr4); } private static void initList(int[] arr1, int[] arr2, int[] arr3, int[] arr4) { ArrayList<Integer> list1 = new ArrayList<Integer>(); ArrayList<Integer> list2 = new ArrayList<Integer>(); ArrayList<Integer> list3 = new ArrayList<Integer>(); ArrayList<Integer> list4 = new ArrayList<Integer>(); for(int i=0; i < 4; i++){ list1.add(arr1[i]); list2.add(arr2[i]); list3.add(arr3[i]); list4.add(arr4[i]); } //输出 System.out.println("前:"+list2+"后:"+list1+"......对比...."+list2.retainAll(list1)); System.out.println("前:"+list3+"后:"+list1+"......对比...."+list3.retainAll(list1)); System.out.println("前:"+list4+"后:"+list1+"......对比...."+list4.retainAll(list1)); System.out.println("====================================================="); System.out.println("输出list2:"+list2); System.out.println("输出list3:"+list3); System.out.println("输出list4:"+list4); }
可以看到这个方法改变了集合A中的元素,将存在于集合A中但不存在于集合B中的元素移除。 如果集合A的大小发生了改变,返回true,即使两个集合完全没有交集,也会返回true。 如果集合A的大小没有发生改变,返回false,即使两个集合完全相同,也会返回false。
所以,retainAll的返回值并不能用于判断两个集合是否存在交集,只能用于判断集合大小是否发生改变; 应该通过集合的大小判断两个集合是否有交集。
java集合中retainAll方法
最新推荐文章于 2022-11-17 14:54:13 发布