在使用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());