调用集合方法retainAll、removeAll无法报unSupportOperation

在使用如下代码进行集合交集的操作时报UnSupportOperation。

List<Integer> list = Arrays.asList(16, 17, 18, 19, 20);
List<Integer> list2 = new ArrayList<Integer>(list.subList(2, 5));
list.retainAll(list2);

解决:Arrays.list生成的List是数组的一个引用,这种集合对象的功能是受限的。通过使用Arrays.asList重新自定义一个List对象解决该问题,代码如下:

List<Integer> list = new ArrayList<Integer>(Arrays.asList(16, 17, 18, 19, 20));
List<Integer> list2 = new ArrayList<Integer>(list.subList(2, 5));
list.retainAll(list2);

 

 

你可能感兴趣的:(remove)