利用遞迴形成乙個層級樹

2021-07-11 12:37:04 字數 1568 閱讀 5024

在我們的開發中,很多時候在顯示乙個具有層級結構的下拉框,效果如下:

/*** 輔助分類生成樹狀結構列表的工具類,名稱根據層級加字首

*/public class models2treeutil

/*** @title: walkcategorytreelist

* @description:遍歷分類樹,把遍歷出的分類資訊放到指定的集合中

* @param topcategories

* @param string

* @param list

*/private static final void walkcategorytreelist(listtopcategories, string prefix, listlist)

}/**

* @title: findorgs2treewithlevel

* @description:根據層數返回樹形的機構

* @param toporgs

* @param i

* @return list

*/public static listfindorgs2treewithlevel(listtoporgs, int level)

return result;

}/**

* // 該方法只適合資料量比較小的情況,資料量大的時候可能出現記憶體溢位的情況

* * @title: walkorgtreelistwithlevel

* @description:根據頂層機構返回

* @param toporgs

* @param prefix

* @param list

*/private static void walkorgtreelistwithlevel(listtoporgs, string prefix, listlist,

int level)

for(organization top : toporgs)}}

更進一步的是在兩個地方優化了:快取支援,最大層級限制。

快取支援需要在jfinal的外掛程式中配置快取外掛程式,getchildren()還是按照普通的方式獲取子的即可。

// ecache快取外掛程式配置

ehcacheplugin ehplugin = new ehcacheplugin(

this.getclass().getresource("/").getpath().replacefirst("/", "") + "ehcache-shiro.xml");

me.add(ehplugin);

public listgetchildren()

通過乙個int的level引數即可簡單滴實現最大層級限制!在使用的時候都需要傳入乙個top列表,這個表示最上層,然後通過level控制往下的深度。當然,你在呼叫的時候傳入第二層的,level=2,那就返回2,3這兩層的資料。

乙個網頁的形成過程

乙個網頁從我們輸入 到開啟經歷了以下步驟。dns 網域名稱系統 domain name system 由解析器和網域名稱伺服器組成,網域名稱伺服器儲存著該網路中所有主機的網域名稱和對應的ip位址,網域名稱有唯一對應的ip位址,但是ip位址不一定對應乙個網域名稱,我們就是根據dns來上網的。過程簡述 ...

乙個用 vue 寫的樹層級元件 vue ztree

最近看了大神的關於vue ztree的部落格,感覺很讚,於是摘抄下來,方便自己學習,機智girl,哈哈哈o o 最近由於後台管理專案的需要,頁面需要製作乙個無限樹的需求,我第一感就想到了外掛程式 ztree,不過我覺得它太大了,還是自己動手豐衣足食吧。我拿來了 ztree的樣式庫,自己動手寫的演算法...

構建乙個模組的層級包

檔案 init py的目的是要包含不同執行級別的包的可選的初始化 舉個例子,如果你執行了語句import graphics,檔案graphics init py將被匯入,建立graphics 命名空間 的內容。像import graphics.format.jpg這樣匯入,檔案graphics in...