1.创建一个list集合,集合里面包括父节点和子节点
//创建一个list集合,集合里面包括所有父节点和子节点
public static void main(String args[]) {
List<Map<String,Object>> menuList = new ArrayList<>();
Map<String,Object> mu = new HashMap<>();
mu.put("col1","mblu1589348220464");//子节点1
mu.put("col2","目录2");//子节点2
mu.put("parentId","mblu1589348218105");//父节点
Map<String,Object> mu1 = new HashMap();
mu1.put("col1","mblu1589348220912");
mu1.put("col2","目录3");
mu1.put("parentId","mblu1589348218105");
Map<String,Object> mu2 = new HashMap();
mu2.put("col1","mblu1589348223843");
mu2.put("col2","目录4");
mu2.put("parentId","mblu1589348220464");
Map<String,Object> mu3 = new HashMap();
mu3.put("col1","mblu1589348224014");
mu3.put("col2","目录5");
mu3.put("parentId","mblu1589348220464");
Map<String,Object> mu4 = new HashMap();
mu4.put("col1","mblu1589348225870");
mu4.put("col2","目录6");
mu4.put("parentId","mblu1589348223843");
menuList.add(mu);
menuList.add(mu1);
menuList.add(mu2);
menuList.add(mu3);
menuList.add(mu4);
List<Map<String,Object>> childList = treeMenuList(menuList, "mblu1589348223843");
childList.forEach(m->{
System.out.println(m.get("col1") + " " + m.get("col2"));
});
}
//子节点
static List<Map<String,Object>> childMenu = new ArrayList();
2.获取某个父节点下面的所有子节点
public static List<Map<String,Object>> treeMenuList(List<Map<String,Object>> menuList, String pid) {
menuList.forEach(mu->{
//遍历出父id等于参数的id,add进子节点集合
if (mu.get("parentId").toString().equals(pid)) {
//递归遍历下一级
treeMenuList(menuList, mu.get("col1").toString());
childMenu.add(mu);
}
});
return childMenu;
}
运行结果如下:
mblu1589348225870 目录6