• java8 树类型转换


    /**
     * 创建树
     *
     * @param list       列表
     * @param parentRoot 父根
     * @return {@link List}<{@link TreeLabelDto}>
     */
    public static List createTree(List list, String parentRoot) {
        Map> rootList = list.stream().filter(treeDto -> !treeDto.getParentId().equals(parentRoot)).collect(Collectors.groupingBy(treeDto -> treeDto.getParentId()));
        list.forEach(treeDto -> treeDto.setChildren(rootList.get(treeDto.getId())));
        return list.stream().filter(treeDto -> treeDto.getParentId().equals(parentRoot)).collect(Collectors.toList());
    }
    

    package com.stock.mr.enterprise.common.dto;

    import net.logstash.logback.encoder.org.apache.commons.lang3.builder.EqualsBuilder;
    import net.logstash.logback.encoder.org.apache.commons.lang3.builder.HashCodeBuilder;
    import org.apache.pulsar.shade.com.fasterxml.jackson.annotation.JsonBackReference;
    import org.apache.pulsar.shade.com.fasterxml.jackson.annotation.JsonManagedReference;

    import java.io.Serializable;
    import java.util.List;

    public class TreeLabelDto implements Serializable {
    private static final long serialVersionUID = 2434282106176669573L;
    private String id;
    private String parentId;
    @JsonBackReference
    private TreeLabelDto parent;
    @JsonManagedReference
    private List children;
    private String name;
    private String label;
    private int level;
    private int sort;
    private String rootId;
    private String type;
    private boolean isLeaf;
    private String description;
    private String flag;
    private String value;

    public TreeLabelDto() {
    }
    
    public TreeLabelDto(String id, String parentId, String name) {
        this.id = id;
        this.parentId = parentId;
        this.name = name;
    }
    
    public String getDescription() {
        return this.description;
    }
    
    public void setDescription(String description) {
        this.description = description;
    }
    
    public String getId() {
        return this.id;
    }
    
    public void setId(String id) {
        this.id = id;
    }
    
    public String getParentId() {
        return this.parentId;
    }
    
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }
    
    public void setRootId(String rootId) {
        this.rootId = rootId;
    }
    
    public String getRootId() {
        return this.rootId;
    }
    
    public TreeLabelDto getParent() {
        return this.parent;
    }
    
    public void setParent(TreeLabelDto parent) {
        this.parent = parent;
    }
    
    public String getName() {
        return this.name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getLabel() {
        return label;
    }
    
    public void setLabel(String label) {
        this.label = label;
    }
    
    public int getLevel() {
        return this.level;
    }
    
    public void setLevel(int level) {
        this.level = level;
    }
    
    public String getType() {
        return this.type;
    }
    
    public List getChildren() {
        return this.children;
    }
    
    public void setChildren(List children) {
        this.children = children;
    }
    
    public void setType(String type) {
        this.type = type;
    }
    
    public boolean isLeaf() {
        return this.isLeaf;
    }
    
    public void setLeaf(boolean isLeaf) {
        this.isLeaf = isLeaf;
    }
    
    public int getSort() {
        return this.sort;
    }
    
    public void setSort(int sort) {
        this.sort = sort;
    }
    
    public String getFlag() {
        return this.flag;
    }
    
    public void setFlag(String flag) {
        this.flag = flag;
    }
    
    public int hashCode() {
        return (new HashCodeBuilder(17, 37)).append(this.id).append(this.parentId).toHashCode();
    }
    
    public boolean equals(Object obj) {
        boolean isEqual = false;
        if (obj != null && TreeLabelDto.class.isAssignableFrom(obj.getClass())) {
            TreeLabelDto TreeLabelDto = (TreeLabelDto)obj;
            isEqual = (new EqualsBuilder()).append(this.getId(), TreeLabelDto.getId()).append(this.getParentId(), TreeLabelDto.getParentId()).isEquals();
        }
    
        return isEqual;
    }
    
    public String toString() {
        return "Node {id=" + this.id + ", parentId=" + this.parentId + ", children=" + this.children + ", name=" + this.name + ", level =" + this.level + "}";
    }
    
    public String getValue() {
        return this.value;
    }
    
    public void setValue(String value) {
        this.value = value;
    }
    

    }

  • 相关阅读:
    Intel汇编-Linux系统调用
    【Shell 系列教程】Shell printf 命令( 六)
    MySQL使用GROUP BY分组,根据分组值对应,为null的分组展示为0或自定义数值
    LeetCode --- 1275. Find Winner on a Tic Tac Toe Game 解题报告
    【财务系统】报告如何转换下载为word?这个方法值得借鉴
    UE4(Unreal Engine4)虚幻引擎视口布局
    Android中 BufferQueue 和 Gralloc
    手机拍照转机器人末端坐标(九点标定法)
    html网页设计模板制作前需要准备什么?
    深入理解 JVM 之——Java 内存区域与溢出异常
  • 原文地址:https://blog.csdn.net/qq_36858666/article/details/139630244