zoukankan      html  css  js  c++  java
  • 将有父子关系的多个map写到一起。将子孙放到父级节点中,每个节点都会关联起来(使用list和map)

    此方法效率较低,推荐查看博客

    研究将有pid和id的List<Map<String,Map>>组成树

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 〈一句话功能简述〉
     * 〈功能详细描述〉
     *
     * @author 龙谷情
     * @date 2020/4/22-17:29
     * @since [v1.0]
     */
    public class MaplistMap {
    
        public  List<Object> getResult() {
            List<Map> queryList = getQueryList();
            List<Object> resultList = new ArrayList<>();
            //为每一个节点添加孩子字段
            for(Map map : queryList){
                List<Map> childList = new ArrayList<>();
                map.put("child",childList);
            }
            for(Map map : queryList){
                for(Map childMap : queryList){
                    if(childMap.get("fid").toString().equals(map.get("id").toString())){
                        List<Map> arrList = (ArrayList<Map>) map.get("child");
                        arrList.add(childMap);
                        System.out.println("");
                    }
                }
                resultList.add(map);
            }
    
            return resultList;
        }
    
        /**
         * 获得模拟的含有父子关系的数据
         *
         */
        public List<Map> getQueryList() {
            Map<String, String> queryMap1 = getQueryMap("1", "name1", "");
            Map<String, String> queryMap2 = getQueryMap("2", "name2", "1");
            Map<String, String> queryMap3 = getQueryMap("3", "name3", "1");
            Map<String, String> queryMap4 = getQueryMap("4", "name4", "2");
            Map<String, String> queryMap5 = getQueryMap("5", "name5", "3");
            Map<String, String> queryMap6 = getQueryMap("6", "name6", "2");
            Map<String, String> queryMap7 = getQueryMap("7", "name7", "5");
            Map<String, String> queryMap8 = getQueryMap("8", "name8", "4");
            Map<String, String> queryMap9 = getQueryMap("9", "name9", "7");
            Map<String, String> queryMap10 = getQueryMap("10", "name10", "7");
            Map<String, String> queryMap11 = getQueryMap("11", "name11", "7");
            Map<String, String> queryMap12 = getQueryMap("12", "name12", "8");
    
            List<Map> queryList = new ArrayList<>();
            queryList.add(queryMap1);
            queryList.add(queryMap2);
            queryList.add(queryMap3);
            queryList.add(queryMap4);
            queryList.add(queryMap5);
            queryList.add(queryMap6);
            queryList.add(queryMap7);
            queryList.add(queryMap8);
            queryList.add(queryMap9);
            queryList.add(queryMap10);
            queryList.add(queryMap11);
            queryList.add(queryMap12);
            return queryList;
        }
    
    
        /**
         * 数据模拟
         *
         */
        private Map<String, String> getQueryMap(String id, String name, String fid) {
            Map<String, String> queryMap = new HashMap<>();
            queryMap.put("id", id);
            queryMap.put("name", name);
            queryMap.put("fid", fid);
            return queryMap;
        }
    }
    
    
    昔日我曾苍老,如今风华正茂(ง •̀_•́)ง
  • 相关阅读:
    联考20200801 T2 皮卡丘
    联考20200729 T2 划愤
    联考20200801 T1 林海的密码
    联考20200725 T2 Tree
    联考20200721 T1 s1mple
    联考20200730 T2 小B的环
    联考20200730 T1 小B的班级
    联考20200718 T1 因懒无名
    联考20200723 T1 数
    联考20200722 T1 集合划分
  • 原文地址:https://www.cnblogs.com/lgqrlchinese/p/12766851.html
Copyright © 2011-2022 走看看