手动实现一个树结构(根据参数ID返回当前节点以及所有子节点,递归查询下一级节点)

package com.study.utils;

import com.study.entity.Per;

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

public class TreeUtils {

public static Per getCurrentNode(List<Per> list){
    Per per = list.stream().min(Comparator.comparing(Per::getId)).get();

    return setChildrenNode(per, list);
}
public static Per setChildrenNode(Per per,List<Per> list){
    List<Per> collect = list.stream().filter(item -> {
        return per.getId().equals(item.getPid());
    }).collect(Collectors.toList());

    per.setPerList(collect);

    if(collect.size()!=0){
        collect.stream().forEach(item -> {setChildrenNode(item,list);});
    }

    return per;
}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容