java转换list成tree的数据结构

1、Java递归将List数据转换为Tree结构数据https://blog.csdn.net/yuan_xiaohou/article/details/82461892?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_v2~rank_aggregation-1-82461892.pc_agg_rank_aggregation&utm_term=Java+%E5%B0%86
摘要由CSDN通过智能技术生成

1、Java递归将List数据转换为Tree结构数据

https://blog.csdn.net/yuan_xiaohou/article/details/82461892?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_v2~rank_aggregation-1-82461892.pc_agg_rank_aggregation&utm_term=Java+%E5%B0%86list%E8%BD%AC%E6%8D%A2%E4%B8%BAtree&spm=1000.2123.3001.4430

2、java8使用stream()转化

https://blog.csdn.net/weixin_33725126/article/details/93244840

3、递归组装

https://blog.csdn.net/xcymorningsun/article/details/79254819

4、java8.stream().map()

	// 调用转化的方法
	tree2List(menuPermissions, 0L);
	// 递归***list转化成tree的递归方法!!!
	private List<MenuPermission> tree2List(List<MenuPermission> menus, Long parentId) {
   
        return menus.stream()
                .map(l -> {
   
                    // 如果当前节点是parentId的一个孩子A
                    if (parentId.equals(l.getParentId())) {
   
                    	// 获取孩子A的所有孩子As找出来,并标记到A的children list中存起来
                        List<MenuPermission> cNode = treeList(menus, l.getId());
                        l.setChildren(cNode);
                        // 遍历list当前的节点i,设置完成该节点i的所有children之后,就该返回了;
                        // 返回也就是:继续在menus列表中找下一个结点的所有children
                        return l;
                    }
                    return null;
                })
                .filter(Objects::nonNull)
                .sorted(Comparator.comparing(MenuPermission::getSort, Comparator.nullsLast(Integer::compareTo)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值