記錄轉化爲有層次結構的樹狀列表的通用算法

轉載:http://www.cnblogs.com/ejiyuan/archive/2007/11/27/973765.html

 


 

問題說明:
在獲取數據庫記錄數據的時候, 通常返回的ArrayList集合, 沒有了層次關係. 如果每次根據PID重新到數據庫獲取記錄, 可以做到, 但有以下幾個缺點:
1. 訪問數據庫記錄次數隨着記錄的增多而增多
2. 由於需要多次訪問數據庫, 因此訪問速度受影響
3. 需要數據庫訪問層的支持, 並對記錄進行轉化, 耦合性太強
4. 通用性不好, 每次需要一個新的類型列表, 就需要
解決方法:
我根據原有的樹狀結構算法代碼, 編寫一個通用的算法, 利用反射原理, 遞歸的對數據進行篩選.
這樣只需要訪問數據庫一次, 然後就在內存中遍歷, 而且適合於所有具有(PID, ID, Name)屬性的實體類集合的排序.
 
如我需要生成設備類型實體類集合的樹狀結構時候, 代碼如下:

 

 

 

 

 


效果圖如下
樹狀列表效果圖.jpg

 

 

 

 

 

 

 

 

 

 

 

發佈了101 篇原創文章 · 獲贊 5 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章