/**
* 循环转换
* @param personList
* @return
*/
public static List<Person> listtotree(List<Person> personList){
List<Person> list = new ArrayList<Person>();
for (Person per:personList) {
if(per.getPid()==0) {
list.add(per);
}
for (Person per2 : personList) {
if (per.getId() == per2.getPid()) {
if(per.getPerson()==null){
per.setPerson(new ArrayList<Person>());
}
per.getPerson().add(per2);
}
}
}
return list;
}
/****************************************************************************
* 递归转换
* @param personList
* @return
*/
public static List<Person> listtotreeDg(List<Person> personList){
List<Person> list = new ArrayList<Person>();
for (Person person : personList) {
if(person.getPid()==0){
list.add(findChildren(person,personList));
}
}
return list;
}
private static Person findChildren(Person person, List<Person> personList) {
for (Person list : personList) {
if(person.getId()==list.getPid()){
if(person.getPerson()==null){
person.setPerson(new ArrayList<Person>());
}
person.getPerson().add(findChildren(list,personList));
}
}
return person;
}
/****************************************************************************/
public class Person{
private Integer id;
private Integer pid;
private String name;
private List<Person> person;
}