gpt4 book ai didi

java - 在列表迭代期间从 java.util.List 中删除元素时引发 ConcurrentModificationException?

转载 作者:IT老高 更新时间:2023-10-28 20:21:46 26 4
gpt4 key购买 nike

@Test
public void testListCur(){
List<String> li=new ArrayList<String>();
for(int i=0;i<10;i++){
li.add("str"+i);
}

for(String st:li){
if(st.equalsIgnoreCase("str3"))
li.remove("str3");
}
System.out.println(li);
}

当我运行这段代码时,我会抛出一个ConcurrentModificationException

当我从 list 中删除指定元素时,list 似乎不知道它的 size 已更改。

我想知道这是否是 collections 和删除元素的常见问题?

最佳答案

我相信这就是 Iterator.remove() 背后的目的。方法,以便能够在迭代时从集合中移除一个元素。

例如:

Iterator<String> iter = li.iterator();
while(iter.hasNext()){
if(iter.next().equalsIgnoreCase("str3"))
iter.remove();
}

关于java - 在列表迭代期间从 java.util.List 中删除元素时引发 ConcurrentModificationException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com