直接代码演示:
@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); } 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; } 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; } }
最终会打印:ls:[1,2, 3, 4]