Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
if(pairs.getKey().equals("mango"))
{
map.put(pairs.getKey(), pairs.getValue().add(18));
}
else if(!map.containsKey("mango"))
{
List<Integer> ints = new ArrayList<Integer>();
ints.add(18);
map.put("mango",ints);
}
it.remove(); // avoids a ConcurrentModificationException
}
编辑:所以在里面试试这个:
map.put(pairs.getKey(), pairs.getValue().add(number))
您收到错误是因为您尝试将整数放入值中,而预期为ArrayList
.
编辑2:然后将以下内容放入您的while循环中:
if(pairs.getKey().equals("mango"))
{
map.put(pairs.getKey(), pairs.getValue().add(18));
}
else if(!map.containsKey("mango"))
{
List<Integer> ints = new ArrayList<Integer>();
ints.add(18);
map.put("mango",ints);
}
编辑3:通过阅读您的要求,我认为您可能不需要循环。您可能只想检查映射是否包含键mango
,如果确实添加18
,则在映射中使用键mango
和值创建一个新条目18
。
因此,您可能需要的只是以下内容,没有循环:
if(map.containsKey("mango"))
{
map.put("mango", map.get("mango).add(18));
}
else
{
List<Integer> ints = new ArrayList<Integer>();
ints.add(18);
map.put("mango", ints);
}