当前位置: 首页 > 工具软件 > clear > 使用案例 >

Map的clear踩坑

关冠宇
2023-12-01

自己太蠢代码如下:

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>();

 类似资料: