java List转为树状List

基本逻辑

每个元素都必有三个字段

id

parentId,

childrenList

parentId为0则代表为顶级目录,没有父级元素。

遍历元素,将所有不为顶级目录的元素add进他们父级的childrenList中,

这样所有的元素都放到了他们的父级元素中

再删除所有不为顶级目录的元素就ok了

        //获取list
        List<RoleAuthVO> voList = ResultBean.getVOList(result, RoleAuthVO::new);
        //遍历list,
        for (RoleAuthVO roleAuthVO : voList) {
            //如果元素不为顶级目录
            if (roleAuthVO.getAuthParentId() != null && roleAuthVO.getAuthParentId() != 0) {
                //再次遍历list
                for (RoleAuthVO authVO : voList) {
                    //则在整个list中找到元素的父级
                    if (roleAuthVO.getAuthParentId().equals(authVO.getAuthId())) {
                        //将元素放入父级中
                        authVO.getChildrenRoleAuthList().add(roleAuthVO);
                    }
                }
            }
        }
        //删除掉所以不为顶级目录的元素
        voList.removeIf(roleAuthVO -> roleAuthVO.getAuthParentId() != null && roleAuthVO.getAuthParentId() != 0);

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值