在使用retainAll方法时,不要直接使用Arrays.asList这种方式,可能会出现以下异常:
System.out.println(Arrays.asList("101,105").removeAll(Arrays.asList("101,105")));
原因:Arrays.asList() 返回的是Arrays的内部类ArrayList, 而不是java.util.ArrayList !
正确姿势如下 :
List<String> list1=new ArrayList<>();
list1.add("105");
list1.add("205");
list1.add("505");
List<String> list2=new ArrayList<>();
list2.add("305");
list2.add("505");
list2.add("205");
List origin = new ArrayList<>();
origin.addAll(list1);
origin.retainAll(list2);
System.out.println("【交集】"+origin);
System.out.println("【交集个数】"+origin.size());