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

哪些集合支持全部删除?

4

2 回答 2

32

Arrays.asList返回接口的部分不可修改的实现(部分remove*方法 - 感谢@LouisWasserman 的评论)List

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

于 2013-01-07T17:58:09.817 回答
2

您的收藏可能无法修改。

您需要创建新列表

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

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

于 2019-08-12T07:32:18.850 回答