首页 > 其他分享 >Hutool工具-TreeUtil封装树形结构数据,你用过了吗

Hutool工具-TreeUtil封装树形结构数据,你用过了吗

时间:2022-10-28 15:37:13浏览次数:47  
标签:treeNode object Hutool 树形 TreeUtil key config id

在开发过程中,必定会遇到树形结构的数据,一般都是后端直接从库里查询出来然后自定义方法去封装成树形树形返回给前端。其实Hutool工具类也提供了这个方法,这种方式使用起来也很简单。

        //1.配置树节点信息,指定key,可直接使用默认的key
        TreeNodeConfig config = new TreeNodeConfig();
        //2.查询数据
        List<AreaCode> areaCodes = areaCodeDao.selectAll();
        //3.转为树结构,其中rootId参数代表根节点的父级id值
        List<Tree<String>> treeList = TreeUtil.build(areaCodes, "0", config, ((object, treeNode) -> {
            //对key进行映射赋值
            treeNode.putExtra("id", object.getId());
            treeNode.putExtra("parentId", object.getPid());
            treeNode.putExtra("name", object.getName());
            treeNode.putExtra("deep", object.getAreaLevel());
        }));

在封装树形结构时,需要将数据与树结构对象进行映射,上述是采用的默认的key,其源码如下:

当然也可以自定义key,那么在进行key映射时需要保持一致

        TreeNodeConfig config = new TreeNodeConfig();
        //id
        config.setIdKey("id");
        //父id
        config.setParentIdKey("pid");
        //名称
        config.setNameKey("name");
        //最大递归深度
        config.setDeep(3);
        //孩子节点
        config.setChildrenKey("childrenList");
        //排序字段
        config.setWeightKey("sort");

查询的数据如下图,是树形结构。

标签:treeNode,object,Hutool,树形,TreeUtil,key,config,id
From: https://www.cnblogs.com/zys2019/p/16836192.html

相关文章

  • 树形结构之父子节点查询
    目录1.SQL父子节点查询2.DataTable对象中查找父子节点3.Linq父子节点查询3.参加及源代码下载2022年10月27日20:49:251.SQL父子节点查询这里可以参照我之前关于......
  • P2015 二叉苹果树 (树形DP)
    二叉苹果树题目描述有一棵苹果树,如果树枝有分叉,一定是分二叉(就是说没有只有一个儿子的结点)这棵树共有\(N\)个结点(叶子点或者树枝分叉点),编号为\(1\simN\),树根编号......
  • 【基于hutool工具类封装雪花算法实现的工具类】
    importcn.hutool.core.lang.Snowflake;importcn.hutool.core.util.IdUtil;/***基于hutool工具类封装雪花算法实现的工具类*@author*@date2022年5月20日16:56:21*......
  • Layui 之TreeTable(树形数据表格),适用于权限、部门等
    TreeTable.js下载链接:​​https://pan.baidu.com/s/1lLBge_4MSSViLztwTnPfkA​​提取码:whj3一、效果图 二、前端代码{includefile='common/header'}<divclass="layui-fl......
  • 2020CCPC威海 C Rencontre(树形DP,期望)
    题意:有3个人,每个人有一些待选位置。就是当确定三个人确定位置u1,u2,u3后,需要找到一个位置v到三个位置的距离之和最小,现在给出u1,u2,u3的待选取值,问距离......
  • HDU2376——Average distance(思维+树形DP)
    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2376原文:https://www.codenong.com/cs109682980/题意:给定一棵树,有边权,求树上任意两点之间距离的和的平均值。思路......
  • HDU-1054 Strategic Game(树形DP)
    StrategicGameTimeLimit:20000/10000ms(Java/Other)MemoryLimit:65536/32768K(Java/Other)TotalSubmission(s):17AcceptedSubmission(s):11Font:......
  • HDU-1520 Anniversary party(树形DP)
    AnniversarypartyTimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):7566AcceptedSubmission(s):3321P......
  • C# winform treeview GDI+流程连线 流程图 树形流程图
    C#winformtreeviewGDI+流程连线流程图树形流程图 TreeView_Paint的方法呈现效果,具体如下1.点击连线按钮开始准备连线2.点击第一个连线的起始节点3.再点击第二个......
  • AcWing 4706 -- 树形DP/DFS
    题目描述4706.最短路程思路dfs代码#include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;constintN=100......