Ich werde nicht viel Unsinn sagen, nur den Code an Sie veröffentlichen, der spezifische Code lautet wie folgt:
// Menü Baumstruktur Publikum JsonArray Treemenulist (JsonArray -Menulist, int ParentID) {JsonArray Childmenu = New JsonArray (); für (Objektobjekt: Menulist) {jsonObject jsonMenu = jsonObject.fromObject (Objekt); int mseuid = jsonMenu.getint ("id"); int pid = jsonMenu.getInt ("parentId"); if (parentId == pid) {jsonArray c_node = treemenulist (Menulist, MenüId); JsonMenu.put ("Childnode", c_node); Childmenu.add (JsonMenu); }} kindelkindlich zurück; } public static void main (String args []) {MenucacheService Menucacheservice = new Menucacheservice (); JsonArray JsonArray = New JsonArray (); Menümenü1 = neues Menü (); Menü1.SetId (1L); Menü1.SetParentid (0); Menü1.SetLevel (0); Menümenü 2 = neues Menü (); Menü2.setID (2L); Menü2.SetParentid (0); Menü2.SetLevel (0); Menümenü3 = neues Menü (); Menü3.SetID (3L); Menü3.SetParentid (2); Menu3.SetLevel (1); Menümenü4 = neues Menü (); Menü4.SetID (4L); Menü4.SetParentid (2); Menü4.SetLevel (1); Menümenü 5 = neues Menü (); Menü5.setID (5L); Menü5.SetParentid (4); Menü5.SetLevel (2); Menümenü 6 = neues Menü (); Menü6.SetId (6L); Menü6.SetParentid (1); Menü6.SetLevel (1); jsonArray.add (Menü1); JsonArray.Add (Menü2); JsonArray.Add (Menü3); JsonArray.Add (Menü4); JsonArray.Add (Menü5); JsonArray.Add (Menü6); System.out.print (MenucacheService.Treemenulist (JsonArray, 0)); }PS: Java implementiert eine rekursive Durchführung des Baumes (zum Implementieren des Zusammenbruchmenüs)
1. Kernalgorithmus
Paket com.zf.tag.dao; import Java.util.ArrayList; import Java.util.list; com.zf.tag.Entity.dept.dept; öffentliche Klasse Deptdao erweitert basiert und basiert. tmp = new ArrayList <Object []> (); list <Dept> listAllDept = new ArrayList <Dept> (); String sql = "ID, DNAME, UP_DID aus Tbl_Dept"; listallobject = getresult (SQL); für (Object [] row: listallobject) {] {] {] {] {] {] {] {] {] {] {] {] {] {] {{] {] {] co [] rau = New Object [3] [3]; Zeile [1]; Ro [2] = Zeile [2]; tmp.add (Zeile);} für (Objekt [] Zeile: tmp) {if (null == row [2]) {Dept d = neu Dept (); D.SetId (Integer.ParseInt (String.ValueOf (row [0]))); (Objekt [] Zeile: TMP) {if ((null! Dept (); D.SetId (Integer.ParseInt (String.ValueOf (Row [0]))); ArrayList <Dept> ();} list.add (d); Dept.Setchildren (list);2. Kategorie der Entität (Abteilung)
paket com.zf.tag.entity.dept; import Java.util.List; öffentliche Klasse Dept {private Integer id; private String dname; private list <Dept> Kinder; public Integer getId () {return id;} public void setid (Integer id) {this.id = id; oderDas obige ist der relevante Inhalt der rekursiven Traversal -Baumstruktur von Java, die Ihnen vom Herausgeber vorgestellt wurde. Ich hoffe, es wird für alle hilfreich sein!