java - 从列表中删除项目

标签 java collections

在遍历列表时,我想根据条件删除列表中的一项。请参阅下面的代码。

这给了我一个 ConcurrentModification 异常。

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

如何做到这一点?

最佳答案

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

另外假设列表是字符串。 正如已经回答的那样,需要一个 list.iterator()listIterator也可以做一些导航。

----------

更新

正如@AyushiJain 评论的那样,有

list.removeIf(...);

关于java - 从列表中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17279519/

相关文章:

java - 获取正确的多边形以在图像中显示

c# - 我不认为我正在修改这个集合

java - 在构造函数中设置 Java 集合的大小是否更好?

arrays - Swift 中数组、集合和字典的区别

Java 集合使用货币范围

另一种方法中的 Java 扫描器

java - Gradle:MessageIOException:无法将消息 [EndOfStream] 写入 127.0.0.1(防火墙)?

java - 接口(interface)方法如何在没有主体定义的情况下执行 Java 中的功能?

java - 将充满 double 的文本文件读取到二维数组中

java - Java 中 N 维数组的大小可以改变吗?