我有这个hashmap,我想在迭代它时更新值,如果可能的话添加新元素。我相信它会抛出并发修改异常。那么,有没有办法实现这一点,或者这是不可能的?
答案 0 :(得分: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,因此您可以通过所需的灵活性来管理它。