Java后台实现树形结构

Java后台实现树形结构

tree
开发中有好多带层级的信息,关联性就是本级ID及对应的父ID,若直接返回给前端可能处理不方便,后台处理成json套json的树形结构返回给前端他们能更好的处理,话不多说直接上代码

金字塔尖父节点默认不存值,可根据个人项目情况来

//解析传来的集合
if(list != null){
  //定义接受解析集合
  List<TreeResultVo>  resultList = new ArrayList();
  //循环遍历
  for(int i = 0; i < list.size(); i++){
      TreeResultVo treeResultVo = new TreeResultVo();
      treeResultVo .setParentId(list.get(i).getParentId());
      treeResultVo .setId(list.get(i).getId());
      treeResultVo .setName(list.get(i).getName());
      treeResultVo .setRanks(list.get(i).getRanks());
      resultList.add(treeResultVo );
  }
  return createTree("",resultList);
}else {
  resultList = null;
  return  resultList;
}
}

createTree方法

//循环遍历树形结构
    private List<TreeResultVo> createTree(String Id, List<TreeResultVo> trees){
    	//定义返回集合
        List<TreeResultVo> treeMenu = new ArrayList<>();
        //定义一层层的临时集合
        List<TreeResultVo> treeContinue = new ArrayList<>(trees);
        for(TreeResultVo menu : trees){
            if(Id.equals(menu.getParentId())){
            	//清除你查到的这个实体信息,不参与以后循环查询
                treeContinue.remove(menu);
                menu.setChildren(createTree(menu.getId(),treeContinue));
                //循环都结束了  加入返回集合中
                treeMenu.add(menu);
            }
        }
        return treeMenu;
    }

结果如下

"result": [
        {
            "children": [
                {
                    "children": [],
                    "id": "16_83",
                    "name": "Second",
                    "parentid": "16",
                    "rank": "2"
                }
            ],
            "id": "16",
            "name": "First",
            "parentid": null,
            "rank": "1"
        }
    ]
}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值