UnsupportedOperationException - 此集合不支持removeAll方法(Java集合)

时间:2013-01-07 17:57:11

标签: java collections

Set<Badge> availableBadges = myService.getAvailableBadges();
List<Badge> allBadges = Arrays.asList(Badge.values());
allBadges.removeAll(availableBadges);
/* Badge is an enumn */

哪些收藏品支持删除全部?

2 个答案:

答案 0 :(得分:21)

Arrays.asList返回remove*接口的部分无法修改的实现(部分List方法 - 感谢@LouisWasserman的注释)。

编辑1:使用ArrayList包装:new ArrayList<Badge>(allBadges);

答案 1 :(得分:0)

您的收藏集可能无法修改。

您需要创建新的列表

List<T> list = new ArrayList<>(unmodifiableList);

现在您的列表是可修改的,您可以执行删除和removeAll操作。