Hutool中树结构工具-TreeUtil的使用

519 阅读1分钟

Hutool中树结构工具-TreeUtil的使用

代码实现

/**
     * 返回树形结构
     * @return java.util.List<cn.hutool.core.lang.tree.Tree<java.lang.String>>
     * @author lichennan
     * @since 2022/3/21
     */
    @Override
    public List<Tree<String>> getTreeList() {
        // 构建node列表
        List<TreeNode<String>> nodeList = CollUtil.newArrayList();
        // 从数据库中取出数据
        List<Category> list = baseMapper.selectList(null);
         //循环遍历list并将数据放入TreeNode中
        list.forEach((item)-> {
            // 自定义扩展两个字段
            Map<String, Object> map = new HashMap<>(16);
            map.put("content",item.getContent());
            map.put("icon",item.getIcon());
            // 组装数据
            nodeList.add(
                new TreeNode<>(item.getId(), item.getParentId(), item.getTitle(), item.getOrderNumber())
                    // 扩展的字段
                    .setExtra(map));
        });
        // 0表示最顶层的id是0
        return TreeUtil.build(nodeList,"0");
    }

树形数据
{
"id": "1505872492437209089",
"parentId": "0",
"weight": 0,
"name": "活动",
"icon": "el-icon-collection\r\n",
"content": "轮滑社的赛事和日常活动",
"children": [
{
"id": "1505872789981134849",
"parentId": "1505872492437209089",
"weight": 0,
"name": "比赛",
"icon": "el-icon-collection\r\n",
"content": "轮滑社各类赛事"
},
{
"id": "1505872919845175297",
"parentId": "1505872492437209089",
"weight": 0,
"name": "日常活动",
"icon": "el-icon-collection\r\n",
"content": "轮滑社日常活动"
}
]
}

参考Hutool文档