Map集合
map集合最大的优点是键值对储存数据
给Map集合中赋值遇到的问题
比如给map集合的同一个key赋值的时候会出现数据覆盖的问题
- 错误的赋值方式
Map<String, Map<String, Integer>> map=new HashMap<>();
for (int i = 0; i < 5; i++) {
HashMap<String, Integer> hashMap = new HashMap<>();
hashMap.put("key"+i,i);
map.put("key",hashMap);
}
结果会覆盖掉前几次put的值
{
"key": {
"key4": 4
}
}
- 正确的赋值方式
Map<String, Map<String, Integer>> map=new HashMap<>();
for (int i = 0; i < 5; i++) {
HashMap<String, Integer> hashMap = new HashMap<>();
hashMap.put("key"+i,i);
// 首先先判段是否存在key
if(map.containsKey("key")){
// 存在就取到当前key的值再把新的值put进去
map.get("key").putAll(hashMap);
}else {
// 不存在就直接put
map.put("key",hashMap);
}
}
结果达到预期结果
{
"key": {
"key1": 1,
"key2": 2,
"key0": 0,
"key3": 3,
"key4": 4
}
}