通过递归调用的方式根据父节点获取所有子节点并返回列表;
//1. 查找父节点位置;
//2. 根据父节点获取下面的子节点;
//3. 遍历得到下面的子节点;
public static List<String> getAllChildNodes(List<ProjectSnsDTO> treeList, String node){
List<String> list = new ArrayList<>();
for(ProjectSnsDTO snsDTO : treeList){
String snsCode = snsDTO.getCode();
boolean isLast = snsDTO.getIsLeaf();
List<ProjectSnsDTO> childrenList = snsDTO.getChildren();
//查看下面所有子节点
//如果是当前节点,找出该节点下的所有记录
//getNextChildNode(snsDTO,list,node);
if(node.equalsIgnoreCase(snsCode)){
//增加当前父节点code;
list.add(snsCode);
getTargetChildNodes(childrenList, list);
break;
}else{
if(!CollectionUtils.isEmpty(childrenList)){
getNextChildNodes(childrenList,list,node);
}
}
}
return list;
}
public static void getNextChildNodes(List<ProjectSnsDTO> treeList, List<String> list, String node){
for(ProjectSnsDTO sns : treeList){
String snsCode = sns.getCode();
boolean isLast = sns.getIsLeaf();
List<ProjectSnsDTO> childrenList = sns.getChildren();
//list.add(snsCode);
//查看下面所有子节点
//如果是当前节点,找出该节点下的所有记录
//getNextChildNode(snsDTO,list,node);
if(node.equalsIgnoreCase(snsCode)){
list.add(snsCode);
if(!CollectionUtils.isEmpty(childrenList)) {
getTargetChildNodes(childrenList, list);
break;
}
}else{
if(!CollectionUtils.isEmpty(childrenList)){
getNextChildNodes(childrenList,list,node);
}
}
}
}
public static void getTargetChildNodes(List<ProjectSnsDTO> treeList, List<String> list){
for(ProjectSnsDTO sns : treeList){
String snsCode = sns.getCode();
boolean isLast = sns.getIsLeaf();
List<ProjectSnsDTO> childrenList = sns.getChildren();
list.add(snsCode);
//查看下面所有子节点
//如果是当前节点,找出该节点下的所有记录
//getNextChildNode(snsDTO,list,node);
if(!CollectionUtils.isEmpty(childrenList)){
getTargetChildNodes(childrenList,list);
}
}
}
public class ProjectSnsDTO {
private String sns;
private String id;
private String projectId;
private String sys;
private String code;
private String name;
private String parentId;
private boolean isLeaf =false;
private List<ProjectSnsDTO> children;
private String status;
public String getSns() {
return sns;
}
public void setSns(String sns) {
this.sns = sns;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getProjectId() {
return projectId;
}
public void setProjectId(String projectId) {
this.projectId = projectId;
}
public String getSys() {
return sys;
}
public void setSys(String sys) {
this.sys = sys;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public boolean isLeaf() {
return isLeaf;
}
public void setLeaf(boolean isLeaf) {
this.isLeaf = isLeaf;
}
public List<ProjectSnsDTO> getChildren() {
return children;
}
public void setChildren(List<ProjectSnsDTO> children) {
this.children = children;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}