zoukankan      html  css  js  c++  java
  • 解决 java循环中使用 Map时 在put值时value值被覆盖的问题

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

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

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

        @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方法)

  • 相关阅读:
    初识echarts
    深浅拷贝的理解
    react基本语法及组件
    webpack使用
    网上面试资料整理
    封装原生promise函数
    vue路由懒加载及组件懒加载
    译文---C#堆VS栈(Part Four)
    译文---C#堆VS栈(Part Three)
    译文---C#堆VS栈(Part Two)
  • 原文地址:https://www.cnblogs.com/kinome/p/9648311.html
Copyright © 2011-2022 走看看