访问时如何操作HashMap?

时间:2013-06-11 07:17:36

标签: java collections hashmap

任何机构都可以通过举例说明如何在访问条目时从HashMap中删除条目来帮助我。

3 个答案:

答案 0 :(得分:1)

使用ConcurrentHashMap

  

一个哈希表,支持检索的完全并发和可更新的预期并发性。

这是一个不错的example

答案 1 :(得分:0)

通过条目迭代器:

Map<String, String> myMap = new HashMap<String, String>();
myMap.put("test", "test1");
myMap.put("test2", "test2");
Iterator<Entry<String, String>> it = myMap.entrySet().iterator();
while(it.hasNext()) {
    if("test".equals(it.next().getKey())) {
        it.remove();
    }
}

答案 2 :(得分:0)

最简单的方法是迭代密钥的副本:

final Map<String, Integer> map = new HashMap<String, Integer>();
map.put("test", 0);
map.put("removeMe", 1);
map.put("dontRemoveMe", 2);
for (final String key : map.keySet().toArray(new String[map.keySet().size()]))
    if (key.startsWith("remove"))
        map.remove(key);

但是,如果您的Map大于几个条目,则可能会遇到糟糕的表现,并且您可能希望使用iterator删除:

final Iterator<Entry<String, Integer>> iter = map.entrySet().iterator();
while (iter.hasNext())
    if (iter.next().getKey().startsWith("remove"))
        iter.remove();