解决 java循环中使用 Map时 在put值时value值被覆盖的问题
其实很简单,只需要把容器换成list
然后在循环中,每次循环末尾map = new HashMap() 或者直接在循环中一开始就实例化hashmap(Map map = new HashMap();),这样就不会造成map覆盖了。
注:Map map = new HashMap(); 如果是在循环场景下使用,则必须在循环中以局部实例化的方式出现,见示例2 fetchAssetsList 方法。
copy
@RequestMapping("controller/json/AssetsController/getAssetsInfosysAndType") @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方法)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展