尝试从另一个列表中删除项目列表时出现 UnsupportedOperationException
UnsupportedOperationException when trying to remove a list of items from another list
我在下面编写了代码,我不知道出了什么问题,但是 validDatesIterator.remove() 给我 UnsupportedOperationException 异常。使用 java 1.6
List<Integer> validDates = Arrays.asList(26,27,28,1,2,3,4);
List<Integer> daysToBeRemoved = Arrays.asList(1,2);
Iterator<Integer> validDatesIterator = validDates.listIterator();
while(validDatesIterator.hasNext()) {
Integer curValue = validDatesIterator.next();
for(Integer dayToRemove:daysToBeRemoved) {
if(curValue.equals(dayToRemove)) {
validDatesIterator.remove();
break;
}
}
}
此外,当我调试有效日期时(curValue 最初给出 27,而不是 26)从元素 27 而不是 26 开始。
可能是一个重复的问题,但搜索了很多,还是找到了这个。请帮忙。
Arrays.asList
returns Arrays.ArrayList
,不支持删除元素的 List
实现。使用
List<Integer> validDates = new ArrayList<>(Arrays.asList(26,27,28,1,2,3,4));
第一个问题:Arrays.asList()
returns 一个(基本上)不可修改的列表。将其传递给普通列表的构造函数。
第二个问题:你又重新发明了轮子
试试这个:
List<Integer> validDates = new ArrayList<>(Arrays.asList(26,27,28,1,2,3,4));
List<Integer> daysToBeRemoved = Arrays.asList(1,2);
validDates.removeAll(daysToBeRemoved);
我在下面编写了代码,我不知道出了什么问题,但是 validDatesIterator.remove() 给我 UnsupportedOperationException 异常。使用 java 1.6
List<Integer> validDates = Arrays.asList(26,27,28,1,2,3,4);
List<Integer> daysToBeRemoved = Arrays.asList(1,2);
Iterator<Integer> validDatesIterator = validDates.listIterator();
while(validDatesIterator.hasNext()) {
Integer curValue = validDatesIterator.next();
for(Integer dayToRemove:daysToBeRemoved) {
if(curValue.equals(dayToRemove)) {
validDatesIterator.remove();
break;
}
}
}
此外,当我调试有效日期时(curValue 最初给出 27,而不是 26)从元素 27 而不是 26 开始。
可能是一个重复的问题,但搜索了很多,还是找到了这个。请帮忙。
Arrays.asList
returns Arrays.ArrayList
,不支持删除元素的 List
实现。使用
List<Integer> validDates = new ArrayList<>(Arrays.asList(26,27,28,1,2,3,4));
第一个问题:Arrays.asList()
returns 一个(基本上)不可修改的列表。将其传递给普通列表的构造函数。
第二个问题:你又重新发明了轮子
试试这个:
List<Integer> validDates = new ArrayList<>(Arrays.asList(26,27,28,1,2,3,4));
List<Integer> daysToBeRemoved = Arrays.asList(1,2);
validDates.removeAll(daysToBeRemoved);