專案快上線了,工作進入了尾聲,下午在划水,花了半天的時間寫了這個列表轉樹形結構的功能,採用遞迴的方式。以後需要用到的同學可以拿來跑跑,用到了阿里的fastjson。嗯,就這樣
@test
public
void
listtotreetest()
, , , , ]"
;// 無頂級節點
string arrayjson2 =
"[, , , ]"
;// 切換arrayjson1、arrayjson2測試
jsonarray array = jsonarray.
parsearray
(arrayjson1)
; jsonarray result =
listtotree
(array,
"id"
,"pid"
,"child"
,"0001");
system.out.
println
(json.
tojsonstring
(result));
}/**
* list轉樹結構list
* @param array
* @param idkey
* @param pidkey
* @param childkey
* @param topname
* @return
*/public
static jsonarray listtotree
(jsonarray array, string idkey, string pidkey, string childkey, string topname)
else
} jsonarray sortedarray =
newjsonarray()
; jsonarray subarray =
getchildtree
(temparray, idkey, pidkey, childkey, topname)
; topobject.
put(childkey, subarray)
; sortedarray.
add(topobject)
;return sortedarray;
}else
}/**
* 判斷是否有頂級節點
* @param array
* @param idkey
* @param pidkey
* @param topname
* @return
*/public
static
boolean
hastopnode
(jsonarray array, string idkey, string pidkey, string topname)
}return
false;}
/** * 獲取子樹
* @param array
* @param idkey
* @param pidkey
* @param childkey
* @param topname
* @return
*/private
static jsonarray getchildtree
(jsonarray array, string idkey, string pidkey, string childkey, string topname)
sortedarray.
add(item);}
}return sortedarray;
}
遞迴處理無限級分類為樹形陣列
處理乙個無限分類問題,之前是用的多級ajax實現,但是衡量了一下,總資料量不大,決定用樹形陣列組織一下資料形成js檔案,直接放到頁面裡 error reporting 0 function formate arr arrdata,arrmdata,intl else unset arrmdata i...
使用遞迴的方式顯示樹形結構
首先建立乙個util包,裡面建立乙個util類 部門下有子部門.舉例 先獲取到頂級部門 from department d where d.parent.id is null public listfindlistchildren long parentid 然後呼叫之前寫好的util類,裡面有乙個...
多級查詢採用遞迴和迴圈的方式詳解
燚軒科技以20級為例,編寫的 和執行效果如下 1.php查詢每級人數。php 如下 aim prevtel tel n 0 array co array while n 10 return array co 2.php查詢每級的個人資訊 php 如下 aim prevtel 15639743913 ...