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

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

java TreeUtil菜單遞歸工具類

瀏覽:23日期: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久久,三上悠亚国产精品一区二区三区
国产精品99久久久久久董美香| 国产66精品| 日韩高清一区在线| 国产九九精品| 日韩精品诱惑一区?区三区| 在线一区免费| 日本一区免费网站| 精品久久久亚洲| 激情久久久久久| 亚洲日产国产精品| 国产在线观看91一区二区三区| 香蕉人人精品| 日韩欧美精品一区二区综合视频| 婷婷综合电影| 国产高潮在线| 视频在线观看国产精品| 麻豆视频一区| 激情综合网五月| 日韩和欧美的一区| 国产精品99一区二区三| av不卡在线| 麻豆精品视频在线| 欧美日韩视频| 国产欧美激情| 欧美99久久| 久久福利在线| 99久久久久国产精品| 美国三级日本三级久久99 | 亚洲资源av| 久久精品资源| 人人爽香蕉精品| 成人av三级| 欧美一级一区| 亚洲先锋成人| 国产精品99久久久久久董美香| 狠狠色综合网| 精品国产午夜| 一区二区不卡| www.com.cn成人| 97se亚洲| 亚洲综合精品| 国产亚洲一区二区手机在线观看| 奇米狠狠一区二区三区| 在线视频日韩| 麻豆视频在线看| 日韩av在线免费观看不卡| 久久久夜精品| 精品国产欧美日韩| 亚洲欧洲美洲国产香蕉| 欧美日韩一二三四| 久久亚洲国产精品尤物| 综合一区在线| 美女毛片一区二区三区四区 | 中国字幕a在线看韩国电影| 一级欧美视频| 久久久成人网| 国产精品a级| 中文不卡在线| 亚洲国产一区二区在线观看 | 蜜芽一区二区三区| 亚洲v在线看| 精品网站999| 日韩精品乱码av一区二区| av在线日韩| 国精品产品一区| 国产亚洲一区| 日韩精品视频网站| 美女网站久久| 亚洲主播在线| 99在线观看免费视频精品观看| 夜鲁夜鲁夜鲁视频在线播放| 久久99国产精品视频| 欧美日韩一区二区三区四区在线观看| 国产一级久久| 国产日韩综合| 伊人成人网在线看| 视频福利一区| 神马日本精品| 国产一区二区三区网| 久久超级碰碰| 欧美成人精品一级| 国产欧美啪啪| 国产免费av国片精品草莓男男| 日韩精品一区二区三区中文在线 | 日韩精品2区| 在线人成日本视频| 日本精品黄色| 亚洲综合电影| 日韩欧美一区二区三区免费看| 91麻豆精品激情在线观看最新| 亚洲三级精品| 日韩欧美激情电影| 欧美日韩伊人| 欧美黄色精品| 丰满少妇一区| а√天堂8资源中文在线| 91亚洲国产高清| 国产色播av在线| 蜜桃成人精品| 欧美.日韩.国产.一区.二区| 伊人久久婷婷| 一区二区三区网站| 亚洲三级在线| 国产日韩欧美中文在线| 清纯唯美亚洲综合一区| 国产精品一级在线观看| 精品国产一区二区三区2021| 国产91在线精品| 久久精品1区| 先锋影音久久久| 亚洲精品影院在线观看| 国产美女亚洲精品7777| 成人台湾亚洲精品一区二区| 欧产日产国产精品视频| 国产一区久久| 蜜臀久久久99精品久久久久久| 日韩影片在线观看| 国产精品久久久久久av公交车 | 日韩av在线中文字幕| 久久久久久自在自线| 亚洲天堂黄色| 亚洲免费专区| 国产精品igao视频网网址不卡日韩| 国产成人免费av一区二区午夜| 免费一二一二在线视频| 国产亚洲一区在线| 日韩精品免费视频人成| 久久久久伊人| 久久久777| 免费观看在线综合| 国产精品一区二区三区av麻| 狠狠躁少妇一区二区三区| 午夜久久tv| 亚洲精品极品| 精品国产黄a∨片高清在线| 久久久9色精品国产一区二区三区| 国产主播一区| 日本aⅴ精品一区二区三区| 国产成人调教视频在线观看| 午夜精品亚洲| 欧美精品三级在线| 亚洲一区资源| 中文字幕成人| 超碰成人av| 亚洲精品综合| 国产资源在线观看入口av| 久久亚洲视频| 国产成人久久| 久久国产66| 麻豆一区二区在线| 狠狠久久婷婷| 国产精品17p| 婷婷综合网站| 国产人成精品一区二区三| 精品丝袜在线| 日韩1区2区日韩1区2区| 欧美13videosex性极品| 亚洲精品动态| se01亚洲视频| 日本成人一区二区| 成人啊v在线| 人人爱人人干婷婷丁香亚洲| 久久久久午夜电影| 亚洲精品影视| 日韩高清不卡| 7777精品| 91成人精品| 精品一区不卡| 亚洲久久视频| 夜鲁夜鲁夜鲁视频在线播放| 奇米狠狠一区二区三区| 激情欧美日韩一区| 久久精品国产99国产精品| 免费欧美日韩| 日韩免费高清| 国产日韩欧美在线播放不卡| 欧美+日本+国产+在线a∨观看| 国产精品调教视频| 伊人久久亚洲影院| 首页国产精品| 久久国际精品| 巨乳诱惑日韩免费av| 日韩精品中文字幕第1页| 欧美影院视频| 亚州av乱码久久精品蜜桃| 久久免费影院| 日韩精品欧美大片| 91精品福利| 激情国产在线| 国产精品久久久久久模特 | 青草国产精品| 老司机精品久久| 99精品视频精品精品视频| 久久精品天堂| 国产亚洲久久| 综合亚洲视频| 美女精品网站| 尤物在线精品| 激情欧美日韩一区| 另类专区亚洲|