採用遞迴的方式轉換陣列為樹形結構

2021-10-23 22:20:34 字數 1890 閱讀 4806

專案快上線了,工作進入了尾聲,下午在划水,花了半天的時間寫了這個列表轉樹形結構的功能,採用遞迴的方式。以後需要用到的同學可以拿來跑跑,用到了阿里的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 ...