欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

树形数据的工具类

程序员文章站 2022-03-11 08:54:40
树形数据(Java)的返回)## 树形数据@Componentpublic class TreeConfig { public static List treeFirst(List list) { //这里的Menu是我自己的实体类,参数只需要菜单id和父id即可,其他元素可任意增添 Map map = new HashMap<>(50); for (Me...

树形数据(Java)的返回)## 树形数据

@Component
public class TreeConfig {
    public static List<Memu> treeFirst(List<Memu> list) {
    //这里的Menu是我自己的实体类,参数只需要菜单id和父id即可,其他元素可任意增添
        Map<Integer, Memu> map = new HashMap<>(50);
        for (Memu treeNode : list) {
            map.put(treeNode.getMenuId(), treeNode);
        }
        return addChildren(list, map);
    }
    private static List<Memu> addChildren(List<Memu> list, Map<Integer, Memu> map) {
        List<Memu> rootNodes = new ArrayList<>();
        for (Memu treeNode : list) {
            Memu parentHave = map.get(treeNode.getParentId());
            if (StringUtils.isEmpty(parentHave)) {
                rootNodes.add(treeNode);
            } else {
                //当前位置显示实体类中的List元素定义的参数为null,出现空指针异常错误
                if(StringUtils.isEmpty( parentHave.getChildList())){
                    parentHave.setChildList(new ArrayList<Memu>());
                    parentHave.getChildList().add(treeNode);
                }else {
                    parentHave.getChildList().add(treeNode);
                }
            }
        }
        return rootNodes;
    }

}

本文地址:https://blog.csdn.net/TigerTonyLoginer/article/details/107389325

相关标签: java