Hutool TreeUtil工具使用,将数组数据转为树形结构(如将全国省份数组按parentid转为树形)

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

第一步,加入maven依赖:

 
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.5.6</version>
</dependency>

第二步,查询数据:

List<AreaCode> areaCodes = areaCodeDao.selectAll();

第三步,配置treenodeconfig:

//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名
treeNodeConfig.setWeightKey("order"); // 权重排序字段 默认为weight
treeNodeConfig.setIdKey("id"); // 默认为id可以不设置
treeNodeConfig.setNameKey("name"); // 节点名对应名称 默认为name
treeNodeConfig.setParentIdKey("parentId"); // 父节点 默认为parentId
treeNodeConfig.setChildrenKey("children"); // 子点 默认为children
treeNodeConfig.setDeep(3); // 可以配置递归深度 从0开始计算 默认此配置为空,即不限制

第四步,转换为树形结构:

List<Tree<String>> treeNodes = TreeUtil.build(nodeList, "0", treeNodeConfig,
        // treeNode – 源数据实体
        // tree – 树节点实体
        (treeNode, tree) -> {
            tree.setId(treeNode.getId());
            tree.setParentId(treeNode.getParentId());
            tree.setWeight(treeNode.getWeight());
            tree.setName(treeNode.getName());
            // 扩展属性 ...
            tree.putExtra("extraField", 666);
            tree.putExtra("other", new Object());
            });
    System.out.println(JSON.toJSONString(treeNodes));

把上边的代码放到一个方法中,就可以了。亲测可用,速度杠杠滴!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值