List转树接口工具类

package org.gocom.coframe.util;

import org.gocom.coframe.entity.TDesignLargeScreen;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @Author w
 * @Date 2022/10/20 15:10
 * @Version 1.0
 */
public class TreeUtil {


    /**
     * stream方法转换成树形结构
     *
     * @param treeList
     * @return
     */
    public static List<TDesignLargeScreen> streamMethod(List<TDesignLargeScreen> treeList) {
        List<TDesignLargeScreen> list = treeList.stream()
                // 筛选出父节点
                .filter(t -> "0".equals(t.getParentId()))
                // 设置父节点的子节点列表
                .map(item -> {
                    item.setTree(streamGetChildren(item, treeList));
                    return item;
                })
                .collect(Collectors.toList());
        return list;
    }

    /**
     * stream 方式递归查找子节点列表
     *
     * @return
     */
    public static List<TDesignLargeScreen> streamGetChildren(TDesignLargeScreen tree, List<TDesignLargeScreen> treeList) {
        List<TDesignLargeScreen> list = treeList.stream()
                .filter(t -> t.getParentId().equals(tree.getId()))
                .map(item -> {
                    item.setTree(streamGetChildren(item, treeList));
                    return item;
                })
                .collect(Collectors.toList());
        return list;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值