[英]Delete elements from Hashmap while iterating over it
這是我的代碼。 我有一個訪問元素的arraylist。 所以我想從hashmap中刪除這些訪問過的元素,下面是代碼。 它給了我並發修改例外。
private static void removeVisitedNodes(ArrayList<String> arrayList) {
// TODO Auto-generated method stub
Iterator<String> it = arrayList.iterator();
String temp;
while(it.hasNext())
{
temp = it.next();
System.out.println("temp is " + temp);
Iterator<Entry<String, ArrayList<String>>> iter = neighbours_reachability_map.entrySet().iterator();
// iterate through the hashmap to remove elements
while (iter.hasNext()) {
Entry<String, ArrayList<String>> entry = iter.next();
if(entry.getValue().contains(temp)){
//System.out.println("Contains it" + entry.getValue().toString());
entry.getValue().remove(temp);
}
}
}
}
我檢查了一些其他類似的問題,但他們沒有多大幫助。 是否有一種更簡潔的方法來做到這一點而不會導致異常? 在此先感謝您的幫助。
您可以將要刪除的元素放在另一個集合對象中,然后在完成迭代后刪除這些元素
要在迭代過程中刪除元素,請使用Iterator.remove()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.