周凯,个人博客

  • 前端
  • 嵌入式
  • 工具
  • 后端
  • 随笔
个人记录
  1. 首页
  2. 后端
  3. java
  4. 正文

java 树形结构

2022年 11月 7日 669点热度 0人点赞 0条评论
  • 递归查询出树形结构

    public class TreeNodeDTO {
    
        private String id;
        private String parentId;
        private String name;
        private List children = new ArrayList<>();
    
        public void add(TreeNodeDTO node) {
            if ("0".equals(node.parentId)) {
                this.children.add(node);
            } else if (node.parentId.equals(this.id)) {
                this.children.add(node);
            } else {
                //递归调用add()添加子节点
                for (TreeNodeDTO tmp_node : children) {
                    tmp_node.add(node);
                }
            }
        }
     }
  • 通过hashMap,只需要遍历一次,就可以完成树的生成

    List list = dbMapper.getNodeList();
    ArrayList rootNodes = new ArrayList<>();
    Map map = new HashMap<>();
    for (TreeNodeDTO node :list) {
        map.put(node.getId(), node);
        Integer parentId = node.getParentId();
        // 判断是否有父节点 (没有父节点本身就是个父菜单)
        if (parentId.equals('0')){
            rootNodes.add(node);
            // 找出不是父级菜单的且集合中包括其父菜单ID
        } else if (map.containsKey(parentId)){
            map.get(parentId).getChildren().add(node);
        }
    }

其他

  • mybatis级联查询树形结构(如菜单)_KBXH的博客-CSDN博客

🎯 拓展阅读提示

本文涉及的内容已同步至公众号后台,我会在那里分享更多深度内容和实用技巧

→ 点击关注:一行梦境

公众号二维码
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 工具
最后更新:2022年 11月 7日

周凯

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022-现在 周凯,个人博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蒙ICP备18004897号