• 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;
    }
    

    }

  • 相关阅读:
    Vue+ECharts实现可视化地图
    无线传输终端 无线通信模块 全网通5G/4G
    matlab绘图函数plot和fplot的区别
    python第三方库 pip install速度慢的解决办法
    大数据平台之数据治理
    图书管理系统 数据结构先导课暨C语言大作业复习 | JorbanS
    基于STM32设计的格力空调遥控器
    黔院长 | 黄帝内经:脏气法时论!
    jetpac--navigation
    可在电脑桌面显示每日工作计划表的工具用哪个?
  • 原文地址:https://blog.csdn.net/qq_36858666/article/details/139630244