import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
public class myTest {
@Test
public void t1() {
Menu m = new Menu();
m.setId(1);
m.setpId(0);
Menu m2 = new Menu();
m2.setId(2);
m2.setpId(1);
Menu m3 = new Menu();
m3.setId(3);
m3.setpId(1);
Menu m4 = new Menu();
m4.setId(4);
m4.setpId(1);
List<Menu> list = new ArrayList<>();
list.add(m);
list.add(m2);
list.add(m3);
list.add(m4);
List<String> ls = new ArrayList<>();
ls.add("1");
getIds(list, 1, ls);
System.out.println("ls:" + ls);
// 输出结果:
// ls:[1, 2, 3, 4]
}
//封装递归方法
private List<String> getIds(List<Menu> ms, int id, List<String> ids) {
for (int i = 0; i < ms.size(); i++) {
if (ms.get(i).getpId() == id) {
ids.add(String.valueOf(ms.get(i).getId()));
getIds(ms, ms.get(i).getId(), ids);
}
}
return ids;
}
//pojo
class Menu {
private int id;
private int pId;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getpId() {
return pId;
}
public void setpId(int pId) {
this.pId = pId;
}
}
}