【发布时间】:2014-08-22 07:27:41
【问题描述】:
我只是在与HashMaps 合作,现在它会弹出一个我自己无法回答的问题...
在我的 HashMap 中有一些条目。我现在正在所有条目中搜索某个值。如果找到该值,则使用hashmap.remove(); 将其删除。但我不是“只”要删除条目,而是要删除 HashMap 的整个“位置”,以便它之间没有空格。最后 HashMap 不应该再有任何价值了(我认为它会是空的,不是吗?)
有没有办法做到这一点?
这就是我到目前为止所得到的,但它只会删除条目而不是整个位置......
for (Entry<Integer, String> entry : myMap.entrySet()) {
if (entry.getValue().contains("EnterStringHere")) {
myMap.remove(entry);
}
}
【问题讨论】:
-
向我们展示您的代码,尤其是在所有条目中搜索某个值的部分。
-
你能分享你现有的代码吗?
-
我不确定我是否理解这个问题。您是否希望 HashMap 在删除条目时使用更少的存储桶?你为什么在乎?
-
... 为什么要让 hashmap 变短?
-
定义“删除职位”的含义。会发生什么,而您希望发生什么? HashMaps 没有“位置”,所以很难理解你的意思。此外,您的代码将导致 ConcurrentModificationException。使用迭代器删除条目。