import java.util.ArrayList; public class RetainAllDemo { public static boolean compare(int[] arr1,int[] arr2){ ArrayList<Integer> list1=new ArrayList<>(); ArrayList<Integer> list2=new ArrayList<>(); for(int a:arr1){ list1.add(a); } for(int b:arr2){ list2.add(b); } // System.out.println(list1.retainAll(list2)); return list1.retainAll(list2);//list1中6,5不在list2中執行該方法時進行了移除操作返回true,如果將arr1改為{1,2,3,4},執行該方法無需進行移除操作返回false; } public static void main(String[] args) { int[] arr1={1,2,3,4,6,5}; int[] arr2={1,2,3,4,53}; boolean b=compare(arr1,arr2); System.out.println(".....:"+b); } }
1、boolean retainAll(Collection<?> c)
- 僅保留此 collection 中那些也包含在指定 collection 的元素(可選操作)。換句話說,移除此 collection 中未包含在指定 collection 中的所有元素。
2、list.retainAll(list2):1)如果集合list=list2即兩個集合元素完全一樣 返回值為false;2)list包含於list2中 返回值為false;3)其他 返回值為true。
3、實際上該方法是指:如果集合list中的元素都在集合list2中則list中的元素不做移除操作,反之如果只要有一個不在list2中則會進行移除操作。即:list進行移除操作返回值為:true反之返回值則為false。