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

Posted 大小姐的生产工厂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决 java循环中使用 Map时 在put值时value值被覆盖的问题相关的知识,希望对你有一定的参考价值。

 

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

然后在循环中 每次循环末尾 或者直接在循环中实例化hashmap,这样就不会造成map覆盖了。

 

    @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);
    }

 

以上是关于解决 java循环中使用 Map时 在put值时value值被覆盖的问题的主要内容,如果未能解决你的问题,请参考以下文章

java里面 put方法的问题

Java面试题

java中如何使用map存取数据

java map

java中如何在map中实现一对多的关系?

Java78中HashMap和ConcurrentHashMap源码阅读