日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java TreeUtil菜單遞歸工具類

瀏覽:25日期:2022-08-26 09:22:43

本文實例為大家分享了java TreeUtil菜單遞歸工具類的具體代碼,供大家參考,具體內容如下

菜單樹(詳細)

package com.admin.manager.storeService.util;import com.admin.manager.storeService.entity.Menu;import java.util.ArrayList;import java.util.List;/** * @author m * @date 2019/12/16 */public class TreeUtil { /** * 獲取菜單樹 * @param menus 所有菜單 * @return */ public static List<Menu> menuTree(List<Menu> menus) { //返回的菜單樹 List<Menu> rootMenus = new ArrayList<>(); for (Menu menu : menus) { //pid(上級Id)為0的是根菜單 if ('0'.equals(menu.getPid())) { rootMenus.add(menu); } } //遍歷,找到二級菜單(根菜單的id和所有菜單中的pid比較) for (Menu rootMenu : rootMenus) { List<Menu> child = getChild(String.valueOf(rootMenu.getId()), menus); rootMenu.setChildren(child); } return rootMenus; } /** * 遞歸獲取下級菜單 * @param pid 上級Id * @param menus 所有菜單 * @return */ public static List<Menu> getChild(String pid, List<Menu> menus) { //子菜單列表 List<Menu> childList = new ArrayList<>(); for (Menu menu : menus) { if (pid.equals(menu.getPid())) { childList.add(menu); } } //遍歷 遞歸獲取子菜單的子菜單 for (Menu menu : childList) { List<Menu> child = getChild(String.valueOf(menu.getId()), menus); menu.setChildren(child); } //遞歸出口 childList長度為0 if (childList.size() == 0) { return new ArrayList<>(); } return childList; }}

上面這種遞歸,如果遇到大數據量,效率是極低的。比如前段時間剛實現了省市區鎮四層的樹結構,面對5萬條的數據,竟然120s才遞歸完,這也太慢了,將來需求變成了省市區鎮鄉五層的結構,那不就掛了?

大眼一看,不是跟上面的一樣嘛。仔細看 it.remove();

假設有五萬的數據,根節點1萬,二級節點1萬,三級節點1萬,4級節點2萬。如果按照上面的邏輯走,每次都要從5萬中數據遞歸查找;而下面的邏輯是找到N級節點并且在總list中刪除。假設找到根節點的1萬數據,并且把他們從總list中刪除,總list剩4萬條數據,依次這樣,到了找4級節點時,總list就已經剩2萬條數據了,總數據量從5萬變成了2萬,循環次數就少了,效率也就高了

import com.energy.service.vo.RegionTree;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * @author m * @date 2020/4/2 */public class TreeUtil { /** * 創建樹結構 * @param regionTrees * @return */ private List<RegionTree> tree(List<RegionTree> regionTrees) { //返回的節點樹 List<RegionTree> rootNodes = new ArrayList<>(); Iterator<RegionTree> it = regionTrees.iterator(); while (it.hasNext()) { RegionTree next = it.next(); //parent(上級Id)為0的是根節點 if ('0'.equals(next.getParentId())) { rootNodes.add(next); it.remove(); } } //遍歷,找到二級節點 for (RegionTree regionTree : rootNodes) { List<RegionTree> child = getChild(regionTrees, regionTree.getId().toString()); regionTree.setChildren(child); } return rootNodes; } /** * 查子節點 * * @param regions * @param parentId * @return */ private List<RegionTree> getChild(List<RegionTree> regions, String parentId) { //子節點列表 List<RegionTree> childList = new ArrayList<>(); Iterator<RegionTree> it = regions.iterator(); while (it.hasNext()) { RegionTree regionTree = it.next(); if (parentId.equals(regionTree.getParentId())) { childList.add(regionTree); it.remove(); } } //遍歷 遞歸獲取子節點的子節點 for (RegionTree regionTree : childList) { List<RegionTree> child = getChild(regions, regionTree.getId().toString()); regionTree.setChildren(child); } //遞歸出口 childList長度為0 if (childList.size() == 0) { return new ArrayList<>(); } return childList; }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品91久久久久| 麻豆久久一区二区| 亚洲女同av| 97久久中文字幕| 蜜桃久久av一区| 综合色就爱涩涩涩综合婷婷| 日韩精品免费一区二区三区| 在线看片国产福利你懂的| 日韩精品成人| 国产精品色婷婷在线观看| 国产精品嫩模av在线| 亚洲精品一级二级三级| 一区二区国产在线| 97久久亚洲| 精品国产午夜肉伦伦影院| 亚洲三级欧美| 午夜av一区| 亚洲伊人精品酒店| 欧美日本三区| 久久成人福利| 国产suv精品一区| 日产精品一区| 国产午夜精品一区二区三区欧美| 日韩精品一区第一页| 亚洲欧美久久精品| 国产精品久久久久久久久久白浆| 国产欧美高清| 人在线成免费视频| 久久精品国产大片免费观看| 精品国产黄a∨片高清在线| 亚洲国产日韩欧美在线| 亚州精品视频| 国产一区日韩一区| 午夜欧美巨大性欧美巨大| 亚洲播播91| 精品不卡一区| 久久国产三级精品| 久久激情av| 四虎精品永久免费| 国产亚洲第一伦理第一区| 亚洲伦乱视频| 国产一级一区二区| 在线日韩成人| 超碰99在线| 免费观看日韩电影| 老司机免费视频一区二区三区| 国产白浆在线免费观看| 人人精品人人爱| 水蜜桃精品av一区二区| 日韩视频久久| 国产精品亚洲片在线播放| 伊人久久视频| 国产精品亚洲四区在线观看| 欧美午夜三级| 欧美一区影院| 亚洲精品日本| 夜夜嗨一区二区| 99视频精品全国免费| 欧美日中文字幕| 人人精品人人爱| 91精品国产自产观看在线| 亚洲激情五月| 91精品国产调教在线观看| 蜜桃视频欧美| 九一精品国产| 亚洲深深色噜噜狠狠爱网站| 日韩欧美中文| 欧美日韩精品一区二区三区视频 | 婷婷亚洲综合| 国产亚洲一区| 国产探花一区二区| 欧美日韩黑人| 伊人影院久久| 日本免费在线视频不卡一不卡二| 国产高清视频一区二区| 久久美女性网| 中文一区一区三区免费在线观| 日本不卡视频在线观看| 麻豆国产精品| 欧美成人亚洲| 午夜精品影视国产一区在线麻豆| 91中文字幕精品永久在线| 日韩精品dvd| 日韩三级精品| 麻豆成人91精品二区三区| 久久亚洲影院| 一区在线视频观看| 韩国精品主播一区二区在线观看 | 亚洲二区三区不卡| 五月天av在线| 国产精品中文字幕制服诱惑| 国产美女一区| 国产va在线视频| 国产精品高清一区二区| 日韩欧美三区| 日本免费一区二区视频| 日本美女一区| 久久不卡国产精品一区二区| 视频一区欧美日韩| 电影91久久久| 久久精品99国产精品日本| 亚洲精品一二三区区别| 国产伦精品一区二区三区视频| 99久久亚洲精品蜜臀| 国产精品s色| 97精品一区二区| 国产成人久久精品麻豆二区 | 国产在视频一区二区三区吞精| 久久久久久免费视频| 国产在线成人| 亚洲精选久久| 国产精品视频3p| 国产极品一区| 国产在线日韩精品| 日韩中文字幕无砖| 欧美日韩视频一区二区三区| 国产精品一区二区三区av| 久久久久美女| 蜜桃视频在线观看一区| 日韩视频一区二区三区在线播放免费观看| 国产精品亚洲综合久久| 国产精品嫩草99av在线| 1024精品一区二区三区| 久久99青青| 久久香蕉精品香蕉| 国产高清视频一区二区| 精品五月天堂| 国产图片一区| 国产精品资源| 国产精品视频一区二区三区| 国产精品中文字幕制服诱惑| 99xxxx成人网| 欧美在线黄色| 日韩理论片av| 97精品久久| 国产在线不卡| 美女视频免费精品| 鲁大师影院一区二区三区| 日本一不卡视频| 麻豆精品蜜桃视频网站| 黑丝美女一区二区| 日韩在线卡一卡二| 国产精品免费看| 国产精品男女| 精品国产欧美日韩| 亚洲欧洲免费| 日韩av首页| 欧美一区二区三区高清视频| 国产91精品对白在线播放| 午夜精品影视国产一区在线麻豆| 中文字幕在线看片| 蜜桃精品在线| 日本亚洲三级在线| 日韩国产成人精品| 激情综合婷婷| 另类中文字幕国产精品| 蜜桃视频一区二区| 国产精品成人3p一区二区三区| 中文字幕在线高清| 日韩一区欧美二区| 伊人久久av| 国产欧美69| 国产欧美另类| 亚洲精选久久| 日本成人在线不卡视频| 日韩午夜高潮| 精品久久网站| 国产精选久久| 奶水喷射视频一区| 欧美一区二区三区高清视频 | 免费人成精品欧美精品| 久久中文精品| 亚洲欧美高清| 中文字幕成人| 美女精品在线观看| 国产成年精品| 亚洲精一区二区三区| 午夜精品影院| 亚洲人成亚洲精品| 水蜜桃久久夜色精品一区| 丁香婷婷久久| 日韩高清不卡在线| 一区二区三区四区在线观看国产日韩| 日韩欧美少妇| 国产精品伦理久久久久久| 911精品国产| 中文字幕av一区二区三区人| 成人久久久久| 蜜臀91精品国产高清在线观看| 综合日韩av| 91麻豆精品| 成人国产精品一区二区网站| 日韩免费在线| 亚洲激情久久| 国产亚洲久久| 亚洲激情偷拍| 国产精品亚洲片在线播放| 日韩欧美不卡| 日韩激情av在线| 91日韩免费|