我尝试在互联网上搜索以找到删除另一项但不删除您正在访问的项的解决方案。不幸的是,没有办法做到这一点。
问题就在这里。
假设我有一个 HashMap 并且 这些项目是 <0,10> <1,20> <2,30>
Map<Integer,Integer> map = new HashMap<Integer, Integer>() ;
Iterator<Map.Entry<Integer, Integer> >entries = map.entrySet().iterator();
while (entries.hasNext()) {
Entry<Integer, Integer> entry = entries.next();
int temp = entry.getValue();
if (temp==0){
map.remove(2); //2 is the key of 3th item
}
}
然后问题就出现了。 非常感谢您的建议。
最佳答案
分两次完成:
- 迭代条目,并收集
Set<Integer>
中要删除的键 - 迭代该集合,并从映射中删除它包含的所有键。 (或调用
map.keySet().removeAll(keysToRemove)
)
关于java - 如何在迭代 HashMap 时删除另一项(不是您持有的项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8947545/