自己太蠢代码如下:
List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put(“key”, 1);
listMap.add(map);
map.clear();
map.put(“key”, 2);
listMap.add(map);
System.out.println(listMap);
输出如下:
[{key=2}, {key=2}]
原因如下:
map.clear();只清除了map中的数据,其内部指针指向的地址未改变
所以导致list中两个map的内容都是一样的
避归:
map.clear();替换为
map = new HashMap<String, Object>();