自己太蠢代码如下: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>();