0
点赞
收藏
分享

微信扫一扫

解决 java循环中使用 Map时 在put值时value值被覆盖的问题

 

其实很简单,只需要把容器换成list

然后在循环中,每次循环末尾map = new HashMap() 或者直接在循环中一开始就实例化hashmap(Map map = new HashMap();),这样就不会造成map覆盖了。

注:Map map = new HashMap(); 如果是在循环场景下使用,则必须在循环中以局部实例化的方式出现,见示例2 fetchAssetsList 方法。

 

)
@ResponseBody
public Msg getAssetsInfosysAndType() {
List list = new ArrayList();
List<AssetsInfosys> assetsInfoSysServiceAll = assetsInfoSysService.getAll();
List<AssetsStructureLowerMenu> lowerMenuServiceAll = assetsStructureLowerMenuService.getAll();
for (AssetsInfosys ai :
assetsInfoSysServiceAll) {
for (AssetsStructureLowerMenu lmsa :
lowerMenuServiceAll) {
if (ai.getName().equals(lmsa.getSuperiormenu())) {
Map map = new HashMap();
map.put("assetsInfoSys", ai);
map.put("msgAssetsType", lmsa);
list.add(map);
}
}
}
return Msg.success().add("AllMsgAssetsInfosysAndType", list);
}

 

示例2:(fetchAssetsList方法)

解决 java循环中使用 Map时 在put值时value值被覆盖的问题_map的值在循环中被覆盖

 



举报

相关推荐

0 条评论