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

    }

  • 相关阅读:
    Nginx反向代理服务器搭建(超详细)
    opencv 存储像素值为浮点数的图像 (.tiff)
    猿创征文|HCIE-Security Day52:DDoS和防火墙(附场景和配置)
    LeetCode每日一题——1796. 字符串中第二大的数字
    一文带你彻底拿下a,b两点间等效电阻
    单例模式及应用场景
    【Android】WebView请求HttpRequest和HttpResponse
    FreeSWITCH添加自定义endpoint之媒体交互
    2022最全面软件测试2000+面试题附答案详解,卷起来
    CAD浏览模式与绘图模式、CAD如何一次性打印上百张图纸
  • 原文地址:https://blog.csdn.net/qq_36858666/article/details/139630244