java根据⽗id遍历出⽗⼦树形关系(通⽤)
执⾏效果图
1.创建⼀个实体类,此类是将需要遍历⽗⼦关系的实体类的id和⽗id存进该类,最终使⽤⼯具类进⾏统⼀遍历,使该⼯具类达到通⽤(多数通⽤⼯具类会损失执⾏效率)的⽬的,也可以参考我的遍历条件写出专属的更⾼效的⽅法,
import lombok.Data;
//此注解为⾃动添加get、set、toString⽅法的,需要jar包,可⾃⼰⽣成getset,
@Data
public class Parent {
private Integer id;
private String name;
private Integer parentId;
public Parent(Integer id, String name, Integer parentId) {
super();
this.id = id;
this.name = name;
this.parentId = parentId;
}
}
2.添加⼯具操作类
import java.util.ArrayList;
import java.util.List;
fresh.bean.Parent;
public class MakeList {
private List<Parent> list;
private List<Parent> resultList=new ArrayList<Parent>();
private String addName;
public void  setAddName(String add) {
addName=add;
}
public void  setList(List<Parent> list) {
this.list=list;
}
public List<Parent> getList(){
make();
return resultList;
}
private void make() {
for(Parent p:list) {
ParentId()==null) {
resultList.add(p);
//⼦菜单上加的横杠
String h="";
Id(),h);
}
}
}
private void traverseList(int id,String h) {
h=h+addName;
for(Parent p:list) {
ParentId()!=null&&ParentId()==id) {
p.setName(Name());
resultList.add(p);
Id(),h);
}
}
}
}
3.调⽤⽅法
//Classify(分类)是要遍历⽗⼦关系的实体类,
private List<Parent> doParent(List<Classify> list){
List<Parent> list2=new ArrayList<Parent>();
for(Classify c:list) {
list2.add(new ClassifyId(), c.getClassifyName(), c.getClassifyParentId()));  }java的tostring方法
MakeList makeList=new MakeList();
makeList.setList(list2);
//在⽗⼦级前加上标识,可⾃定义或不写
makeList.setAddName("- ");
//通过调⽤⼯具类返回⼀个id、name、⽗id的排序后的列表
List();
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。