gpt4 book ai didi

java - 迭代时从自身中删除一个集合

转载 作者:行者123 更新时间:2023-12-02 13:17:34 26 4
gpt4 key购买 nike

我已经被这个问题困扰了一段时间了。如果一组元素制定了一组标准,我会尝试删除它们。但是,当我尝试删除元素时进行迭代时,它失败了。

我得到了 java.util.ConcurrentModificationException

private static void smallerSet(Set<Map<String, Int>> set){

for (Map<String, Integer> map : set){

for (String String : map.keySet()){

if ( true){
set.remove(map);

}
else{
//System.out.println("test");


}

}
}
}

如有任何建议,我们将不胜感激。

最佳答案

在使用增强的 for 循环迭代集合时,无法从集合中删除元素。

您应该使用显式的 Iterator 并使用 Iteratorremove() 方法进行删除:

Iterator<Map<String, Integer>> iter = set.iterator();
while (iter.hasNext ()) {
Map<String, Integer> map = iter.next();
for (String str : map.keySet()){
if (some condition) {
iter.remove();
break; // you should probably break from the inner loop
// after removing an element
} else {
//System.out.println("test");
}
}
}

关于java - 迭代时从自身中删除一个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704766/

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