Não vou dizer muita bobagem, basta postar o código para você, o código específico é o seguinte:
// Menu Tree Struction Public JsonArray Treemenulist (JsonArray Menulist, int parentid) {jsonArray Childmenu = new JsonArray (); for (objeto objeto: menulista) {jsonObject jsonMenu = jsonObject.FromObject (objeto); int menusid = jsonmenu.getint ("id"); int pid = jsonmenu.getint ("parentid"); if (parentid == pid) {jsonArray c_node = treemenulist (menulista, menuID); jsonmenu.put ("ChildNode", c_node); Childmenu.add (JsonMenu); }} retornar Childmenu; } public static void main (string args []) {menucacheService menucacheService = new menucacheService (); JsonArray JsonArray = New JsonArray (); Menu menu1 = novo menu (); MENU1.SETID (1L); MENU1.SETPARENTID (0); menu1.setLevel (0); Menu menu2 = novo menu (); MENU2.SETID (2L); MENU2.SETPARENTID (0); MENU2.SETLEVEL (0); Menu menu3 = novo menu (); MENU3.SETID (3L); MENU3.SETPARENTID (2); MENU3.SETLEVEN (1); Menu menu4 = novo menu (); MENU4.SETID (4L); MENU4.SETPARENTID (2); MENU4.SETLEVEL (1); Menu menu5 = novo menu (); MENU5.SETID (5L); MENU5.SETPARENTID (4); MENU5.SETLEVEN (2); Menu menu6 = novo menu (); MENU6.SETID (6L); MENU6.SETPARENTID (1); menu6.setLevel (1); jsonArray.add (menu1); jsonArray.add (menu2); jsonArray.add (menu3); jsonArray.add (menu4); jsonArray.add (menu5); jsonArray.add (menu6); System.out.print (menucacheService.treemenulist (JsonArray, 0)); }PS: Java implementa a travessia recursiva da árvore (usada para implementar o menu de colapso)
1. Algoritmo do núcleo
pacote com.zf.tag.dao; importar java.util.ArrayList; importar java.util.list; importar com.zf.tag.entity.dept.dept; public classe deptdao estende o objeto (list); tmp = new ArrayList <object []> (); list <tept> listAllDept = new ArrayList <Tept> (); string sql = "Selecione id, dname, up_did de tbl_dept"; listAllObject = getResult (sql); para (objeto [] lista: listlobject) {object] []; = linha [1]; ro [2] = linha [2]; tmp.add (linha);} para (objeto [] linha: tmp) {if (null == linha [2]) {dept d = novo Dept (); D.SetId (Integer.ParseInt (String.ValueOf (linha [0]))); D.SetDName (String.Valueof (linha [1])); listAllDep.add (d); fomatept (tmp, d);}} listlLdetptop; : tmp) {if ((null! = linha [2]) && integer.parseint (string.valueof (linha [2])) == dept.getId ()) {dept d = new Dept ();); dept.getChildren (); if (list == null) {list = new ArrayList <Tept> ();} list.add (d); dept.Setchildren (list); fomatept (tmp, d);}}}}}2. Categoria de entidade (departamento)
pacote com.zf.tag.entity.Dept; importar java.util.list; public class departamento {private integer id; string privada dname; lista privada <Dept> Children; public Integer getId () {Return Id;} public void setId (integer id) {this.id = id;} string getdname () {this.dname = dname;} lista pública <Dept> getChildren () {return Children;} public void setChildren (list <tept> crianças) {this.children = children;} public string tostring () {return this.getdname ();}}}}O exposto acima é o conteúdo relevante da estrutura de árvores de travessia recursiva Java introduzida a você pelo editor. Espero que seja útil para todos!