从列表中删除项目

2022-08-31 09:40:27

在循环浏览列表时,我想根据条件删除列表中的项。请参阅下面的代码。

这给了我一个例外。ConcurrentModification

for (Object a : list) {
    if (a.getXXX().equalsIgnoreCase("AAA")) {
        logger.info("this is AAA........should be removed from the list ");
        list.remove(a);
    }
}

如何做到这一点?


答案 1
for (Iterator<String> iter = list.listIterator(); iter.hasNext(); ) {
    String a = iter.next();
    if (...) {
        iter.remove();
    }
}

另外假设列表是字符串。如前所述,需要一个。listIterator也可以做一些导航。list.iterator()

–---------

更新

正如@AyushiJain评论的那样,有

list.removeIf(...);

答案 2

您需要使用和调用,而不是使用循环。Iteratorremove()iteratorfor