如何避免“ConcurrentModificationException"在迭代时从`ArrayList`中删

How to avoid quot;ConcurrentModificationExceptionquot; while removing elements from `ArrayList` while iterating it?(如何避免“ConcurrentModificationException在迭代时从`ArrayList`中删除元素?)
本文介绍了如何避免“ConcurrentModificationException"在迭代时从`ArrayList`中删除元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在尝试从 ArrayList 中删除一些元素,同时像这样迭代它:

I'm trying to remove some elements from an ArrayList while iterating it like this:

for (String str : myArrayList) {
    if (someCondition) {
        myArrayList.remove(str);
    }
}

当然,在迭代 myArrayList 的同时尝试从列表中删除项目时,我得到了 ConcurrentModificationException.有没有一些简单的方法可以解决这个问题?

Of course, I get a ConcurrentModificationException when trying to remove items from the list at the same time when iterating myArrayList. Is there some simple solution to solve this problem?

推荐答案

使用 Iterator 并调用 remove():

Iterator<String> iter = myArrayList.iterator();

while (iter.hasNext()) {
    String str = iter.next();

    if (someCondition)
        iter.remove();
}

这篇关于如何避免“ConcurrentModificationException"在迭代时从`ArrayList`中删除元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Reliable implementation of PBKDF2-HMAC-SHA256 for JAVA(PBKDF2-HMAC-SHA256 for JAVA 的可靠实现)
Correct way to sign and verify signature using bouncycastle(使用 bouncycastle 签名和验证签名的正确方法)
Creating RSA Public Key From String(从字符串创建 RSA 公钥)
Why java.security.NoSuchProviderException No such provider: BC?(为什么 java.security.NoSuchProviderException 没有这样的提供者:BC?)
Generating X509 Certificate using Bouncy Castle Java(使用 Bouncy Castle Java 生成 X509 证书)
How can I get a PublicKey object from EC public key bytes?(如何从 EC 公钥字节中获取 PublicKey 对象?)