此方法效率较低,推荐查看博客
研究将有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; } }