/**
* 创建树
*
* @param list 列表
* @param parentRoot 父根
* @return {@link List}<{@link TreeLabelDto}>
*/
public static List<TreeLabelDto> createTree(List<TreeLabelDto> list, String parentRoot) {
Map<String, List<TreeLabelDto>> 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<TreeLabelDto> getChildren() {
return this.children;
}
public void setChildren(List<TreeLabelDto> 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;
}
}