لن أقول الكثير من الهراء ، فقط نشر الرمز لك ، الرمز المحدد هو كما يلي:
// MENU TREE BERLUTE Public Jsonarray Treemenulist (Jsonarray Menulist ، Int ParentId) {Jsonarray Childmenu = New Jsonarray () ؛ لـ (كائن كائن: 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) ؛ }} إرجاع childmenu ؛ } public static void main (String args []) {menucacheservice menucacheservice = new MenucacheService () ؛ jsonarray jsonarray = new jsonarray () ؛ Menu Menu1 = New Menu () ؛ menu1.setId (1L) ؛ menu1.setParentId (0) ؛ menu1.setlevel (0) ؛ Menu Menu2 = New Menu () ؛ menu.setid (2l) ؛ menu.setParentId (0) ؛ menu.setlevel (0) ؛ قائمة القائمة 3 = قائمة جديدة () ؛ menu.setid (3L) ؛ menu.setParentId (2) ؛ menu.setlevel (1) ؛ قائمة القائمة 4 = قائمة جديدة () ؛ Menu.SetId (4L) ؛ menu.SetParentId (2) ؛ Menu.SetLevel (1) ؛ قائمة القائمة 5 = قائمة جديدة () ؛ menu.setid (5L) ؛ menu55.setParentId (4) ؛ menu.setlevel (2) ؛ قائمة القائمة 6 = قائمة جديدة () ؛ 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)) ؛ }ملاحظة: Java تنفذ اجتياز العودية للشجرة (المستخدمة لتنفيذ قائمة الانهيار)
1. الخوارزمية الأساسية
package com.zf.tag.dao ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد com.zf.entity.dept.dept ؛ الطبقة العامة deptdao يمتد على أساس {القائمة {القائمة الموثوق <] tmp = new ArrayList <Object [] () ؛ قائمة <Dept> listAllDept = new ArrayList <Dept> () ؛ String SQL = "SELECT ID ، DNAME ، UP_DID من TBL_DEPT" ؛ ListAllObject = getResult (sql) ؛ for (abound [] rip: ribour) الصف [1] ؛ ro [2] = صف [2] ؛ tmp.add (صف) ؛} لـ (كائن [] الصف: 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) ؛ (Object [] الصف: 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]))) ؛ ArrayList <dept> () ؛} list.add (d) ؛ dept.setchildren (list) ؛ fomatedept (tmp ، d) ؛}}}}}2. فئة الكيان (القسم)
package com.zf.tag.entity.dept ؛ import java.util.list ؛ dept {private integer id ؛ private string dname ؛ قائمة خاصة <dept> الأطفال ؛ integer public getId () {معرف الإرجاع ؛} public void setId (integer id) {this.id = id ؛ {this.dname = dname ؛} القائمة العامة <dept> getChildren () {return children ؛} public void setchildren (قائمة <Dept> أطفال) {this.children = children ؛} السلسلة العامة tostring () {return this.getDname () ؛}}}}ما ورد أعلاه هو المحتوى ذي الصلة لهيكل شجرة اجتياز Java المتكرر الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا للجميع!