私はそれほどナンセンスとは言いません、あなたにコードを投稿するだけです、特定のコードは次のとおりです。
//メニューツリー構造public jsonarray treemenulist(jsonarray menulist、int parentid){jsonarray childmenu = new jsonarray(); for(オブジェクトオブジェクト:menulist){jsonobject jsonmenu = jsonobject.fromobject(object); int menuid = jsonmenu.getint( "id"); int pid = jsonmenu.getint( "darterid"); if(derperid == pid){jsonarray c_node = treemenulist(menulist、menuid); jsonmenu.put( "Childnode"、c_node); Childmenu.add(jsonmenu); }} childmenuを返します。 } public static void main(string args []){menucacheservice menucacheService = new MenucacheService(); jsonarray jsonarray = new jsonarray();メニューメニュー1 = new Menu();メニュー1.SetID(1L);メニュー1.setParentID(0);メニュー1.setLevel(0);メニューメニュー2 = new Menu();メニュー2.SetID(2L);メニュー2.setParentID(0);メニュー2.setLevel(0);メニューメニュー3 = new Menu(); menu3.setid(3L); menu3.setParentID(2);メニュー3.SetLevel(1);メニューメニュー4 = new Menu();メニュー4.SetID(4L);メニュー4.setParentID(2);メニュー4.setLevel(1);メニューメニュー5 = new Menu(); menu5.setId(5L); menu5.setParentID(4); menu5.setLevel(2);メニューメニュー6= new 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はツリーの再帰トラバーサルを実装します(崩壊メニューの実装に使用)
1。コアアルゴリズム
パッケージcom.zf.tag.dao; Import java.util.arraylist; Import java.util.list; import com.zf.tag.entity.dept.dept.dept; public class deptdao extendao {public static list <dept> searchalldept()Throws Exception {object] <<<<<<<<<<object = list < tmp = new arraylist <object []>(); list <dept> listalldept = new arraylist <dept>(); string sql = "select id、dname、up_did from tbl_dept"; listAllobject = getResult(sql); 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);}} return listalldect; :tmp){if((null!= row [2])&& integer.parseint(string.valueof(row [2]))== dept.getid()){dept d = new dept(); destid(integer.parseint(string.valueof(row [0]))); dept.getChildren(); if(list == null){list = new arraylist <dept>();} list.add(d); dept.setchildren(list); fomatedept(tmp、d);}}}}}}}}}}}}}}}}2。エンティティカテゴリ(部門)
パッケージcom.zf.tag.entity.dept; import java.util.list; public class dept {private integer id; private string dname; private list <dept> children; public integer getid(){return id;} public void setid(integer id){this.id = id;} {this.dname = dname;} public list <dept> getChildren(){return children;} public void setChildren(list <dept> children){this.children = children;} public string toString(){return this.getDname();}}}上記は、編集者が紹介したJavaの再帰トラバーサルツリー構造の関連コンテンツです。私はそれが誰にでも役立つことを願っています!