나는 말도 안되는 말을하지 않고 코드를 당신에게 게시하십시오. 특정 코드는 다음과 같습니다.
// 메뉴 트리 구조 public JsonArray treemenulist (jsonarray menulist, int parentid) {jsonarray childmenu = new jsonarray (); for (Object Object : Menulist) {jsonobject jsonmenu = jsonobject.fromobject (Object); int menuid = jsonmenu.getint ( "id"); int pid = jsonmenu.getint ( "parentid"); if (parentid == pid) {jsonarray c_node = treemenulist (menulist, menuid); JSONMENU.PUT ( "ChildNode", C_Node); childmenu.add (jsonmenu); }} return childmenu; } public static void main (String args []) {menucacheservice menucacheservice = new menucacheservice (); JSONARRAY JSONARRAY = NEW JSONARRAY (); 메뉴 메뉴 1 = 새 메뉴 (); 메뉴 1.setId (1L); 메뉴 1.setparentID (0); 메뉴 1. SetLevel (0); 메뉴 메뉴 2 = 새 메뉴 (); Menu.2.SetId (2L); MENO2.SETPARENTID (0); MENO2.SETLEVEL (0); 메뉴 메뉴 3 = 새 메뉴 (); menu.3.setId (3L); MEN.3.SETPARENTID (2); 메뉴 3.setLevel (1); 메뉴 메뉴 4 = 새 메뉴 (); Menu.4.setId (4L); MENUCH4.SETPARENTID (2); MENO4.SETLEVEL (1); 메뉴 메뉴 5 = 새 메뉴 (); Menu.5.SetId (5L); Menu5.setparentId (4); 메뉴5.setLevel (2); 메뉴 메뉴 6 = 새 메뉴 (); MENU6. SESTID (6L); MENU6. SETPARENTID (1); 메뉴 6. 세트 레벨 (1); jsonarray.add (메뉴 1); jsonarray.add (menu2); jsonarray.add (menu3); jsonarray.add (menu4); jsonarray.add (메뉴 5); JSONARRAY.ADD (메뉴 6); System.out.print (menucacheservice.treemenulist (jsonarray, 0)); }추신 : Java는 트리의 재귀 적 횡단을 구현합니다 (붕괴 메뉴를 구현하는 데 사용됨)
1. 핵심 알고리즘
package com.zf.tag.dao; import java.util.arraylist; import java.util.list; import com.zf.tag.entity.dept.dept; public class deptdao 확장 기반 <dept> searchAllDept () 예외 {object []> listAllOble = new ArrayList <Object []> (); list <object []> tmp = new ArrayList <Object []> (); list <dpt> listalldept = new ArrayList <Dept> (); String SQL = "select id, dname, up_did에서 tbl_dept"; listallobject (object = getResult); 새 개체 [3]; ro [0] = row [0]; ro [ro [1] = row [1]; ro [2] = row [2]; tmp.add (row);} for (object [] row : tmp) {if (null == row [2]) {dept d = new dept (); d.setid (integer.parseint (string.valueof (row [0])); d.setdname (string.valueof (row [1])); listalldept.add (d); fomatedept (tmp, d);}}}} retract listalldept;} private static void fomatedept (목록) [] {for (object [] row : tmp) {if ((null! = row [2]) && integer.parseint (string.valueof (row [2]) == dept.getId ()) {dept d = new dept (); d.setid (integer.parseint (string.valueof (row [0])); d.setdname (string.valueof (row [1])); list <lpt> list = dept.getchildren (); if (list = null) {new) ArrayList <Dept> ();} list.add (d); dept.Setchildren (list); fomatedept (tmp, d);}}}}}2. 엔티티 카테고리 (부서)
package com.zf.tag.entity.dept; import java.util.list; public class dept {private integer id; private integer id; private list <dept> children; public integer getid () {return id;} public void setid (integer id) {this.id = id; public string ()}} probloid setdname (}} public setdname) dname) {this.dname = dname;} public list <dpt> getchildren () {return children;} public void setchildren (list <dept> children) {this.children = children;} public string tostring () {return this.getdname ();}}위는 편집자가 귀하에게 소개 한 Java 재귀 횡단 트리 구조의 관련 내용입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!