将有父子关系的多个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;
    }
}

昔日我曾苍老,如今风华正茂(ง •̀_•́)ง
原文地址:https://www.cnblogs.com/lgqrlchinese/p/12766851.html