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);
}
EDIT 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);
}