ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Java】树状节点结构的数据

2021-06-16 09:36:15  阅读:192  来源: 互联网

标签:Java name 树状 parentId ID Integer id 节点 public


数据库的菜单,权限表是具有多层级结构,有ID和PARENT_ID两个关键性的字段

通过PARENT_ID和ID相等构建层级结构:

 

然后需要在Java中构建出层级的数据结构,然后输出成JSON返回给前端渲染:

1、构建Tree的结构体:

字段ID和PARENT_ID,然后和一个必须初始化的List集合、

其他的字段就是要显示的东西,这些随意加

public class WechatOrgTreeDto {private Integer id;
    private Integer parentId;
    private String name;
    private List<WechatOrgTreeDto> list = new ArrayList<>();

    public WechatOrgTreeDto(Integer id, Integer parentId, String name) {
        this.id = id;
        this.parentId = parentId;
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getParentId() {
        return parentId;
    }

    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<WechatOrgTreeDto> getList() {
        return list;
    }

    public void setList(List<WechatOrgTreeDto> list) {
        this.list = list;
    }
}

 

2、构建数据

然后是构建结构的方法:

final String SQL = "SELECT * FROM tt_wechat_org";
// 先查询所有
List<Map> all = DAOUtil.findAll(SQL, null);

List<WechatOrgTreeDto> treeList = new ArrayList<>();
// 第一次遍历是为处理数据
for (Map map : all) {
    treeList.add(new WechatOrgTreeDto(
            Integer.valueOf(map.get("ID").toString()),
            Integer.valueOf(map.get("PARENT_ID").toString()),
            map.get("NAME").toString()
    ));
}

// 第二次遍历开始构建结构
List<WechatOrgTreeDto> wechatOrgTreeDtoList = new ArrayList<>();

for (WechatOrgTreeDto wechatOrgTreeDto : treeList) {
    // 需要头节点装入第一个元素,
    if(1 == wechatOrgTreeDto.getId()) wechatOrgTreeDtoList.add(wechatOrgTreeDto);
    for (WechatOrgTreeDto subTree : treeList) {
        // 第二次便利用子节点的ParentID和父节点ID对比进行添加
        if (subTree.getParentId() .equals(wechatOrgTreeDto.getId()) ) {
            wechatOrgTreeDto.getList().add(subTree);
        }
    }
}

 

标签:Java,name,树状,parentId,ID,Integer,id,节点,public
来源: https://www.cnblogs.com/mindzone/p/14888046.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有