任何人都可以通过举例说明如何在访问条目时从 HashMap 中删除条目来帮助我。
问问题
1968 次
3 回答
1
于 2013-06-11T07:20:07.383 回答
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();
}
}
于 2013-06-11T07:20:56.013 回答
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();
于 2013-06-11T07:43:32.297 回答