我有这个哈希图,我想在迭代它时更新值,如果可能的话添加新元素。我相信它会抛出一个并发修改异常。那么,有没有办法实现这一点,或者这是不可能的?
问问题
46 次
1 回答
0
据我所知,您能做的最好的事情就是在骑车时删除和更新值。尝试以下
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("one", "lemon");
map.put("two", "orange");
map.put("three", "kiwi");
Iterator<Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext())
{
Map.Entry entry = (Map.Entry) it.next();
String key = (String)entry.getKey();
//removal
if(key.equals("one"))
it.remove();
//update
if(key.equals("two"))
entry.setValue("lime");
}
}
在地图中插入新元素将导致异常。如果你需要这样做,你应该用第一个的值填充第二个 HashMap,并随意修改它。换句话说,您可以在循环第一个 HashMap 的同时构建第二个 HashMap,因此您可以以所需的灵活性对其进行管理。
于 2013-08-01T06:55:22.260 回答