范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

别再写一堆的for循环了!Java8中的Stream轻松遍历树形结构

  article/details/106481777/  实体类:Menu.java 递归组装树形结构: 格式化打印结果:
  可能平常会遇到一些需求,比如构建菜单,构建树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看,代码实现为了实现简单,就模拟查看数据库所有数据到List里面。  实体类:Menu.java/**  * Menu  * @author lcry  */ @Data @Builder public class Menu {     /**      * id      */     public Integer id;     /**      * 名称      */     public String name;     /**      * 父id ,根节点为0      */     public Integer parentId;     /**      * 子节点信息      */     public List childList;       public Menu(Integer id, String name, Integer parentId) {         this.id = id;         this.name = name;         this.parentId = parentId;     }      public Menu(Integer id, String name, Integer parentId, List childList) {         this.id = id;         this.name = name;         this.parentId = parentId;         this.childList = childList;     }      } 基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。
  项目地址:https://github.com/YunaiV/ruoyi-vue-pro  递归组装树形结构:    @Test     public void testtree(){         //模拟从数据库查询出来         List menus = Arrays.asList(                 new Menu(1,"根节点",0),                 new Menu(2,"子节点1",1),                 new Menu(3,"子节点1.1",2),                 new Menu(4,"子节点1.2",2),                 new Menu(5,"根节点1.3",2),                 new Menu(6,"根节点2",1),                 new Menu(7,"根节点2.1",6),                 new Menu(8,"根节点2.2",6),                 new Menu(9,"根节点2.2.1",7),                 new Menu(10,"根节点2.2.2",7),                 new Menu(11,"根节点3",1),                 new Menu(12,"根节点3.1",11)         );          //获取父节点         List collect = menus.stream().filter(m -> m.getParentId() == 0).map(                 (m) -> {                     m.setChildList(getChildrens(m, menus));                     return m;                 }         ).collect(Collectors.toList());         System.out.println("-------转json输出结果-------");         System.out.println(JSON.toJSON(collect));     }      /**      * 递归查询子节点      * @param root  根节点      * @param all   所有节点      * @return 根节点信息      */     private List getChildrens(Menu root, List all) {         List children = all.stream().filter(m -> {             return Objects.equals(m.getParentId(), root.getId());         }).map(                 (m) -> {                     m.setChildList(getChildrens(m, all));                     return m;                 }         ).collect(Collectors.toList());         return children;     } 基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。
  项目地址:https://github.com/YunaiV/onemall

跨界话剧演出成功,肖战获得导演好评10月28日,肖战参演的央华版话剧如梦之梦在深圳完美谢幕,肖战饰演的5号病人,获得了现场观众和导演的赞誉。导演程辉专门在微博分享了如梦之梦的观后感,对演出情况和演员进行了点评,特别调涨1020,台积电联电齐喊涨百能云芯据代工厂消息人士表示,晶圆代工报价预计将继续上涨。其中,台积电12月后或将调涨20,而联电已通知客户,明年1月起产品价格将再次上调不到10。据电子时报援引上述人士称,虽然上涨趋势延热点魅族推出新业务!面向政企客户,竟玩起了企业定制导语前有老对手华米OV,后有他们的子品牌redmi,一加,realme,iQOO。魅族现在的处境是越来越艰难了。老黄只好拓展起了新业务企业定制。主要是面向政企客户,以下是详细介绍。新机速递高通870索尼IMX766,超性价比Realme新机不愧大师之名前阵子红米放出了红米K40红米Note10系列等机型把性价比手机市场搞得热火朝天。realme这个手机圈的新晋势力自然也不甘示弱。这可不,在2021年7月21日,realme发布了芯片荒有缓解迹象,10月芯片交期仅增1天百能云芯据SusquehannaFinancialGroup资料显示,10月芯片交期仅较9月增加1天。目前芯片从下订到交付的前置时间约为21。9周,虽然仍是2017年开始追踪以来最漫长纪录避免缺货风险重演,必须降低依赖亚洲芯片根据英国金融时报报道,由于全球车厂争抢芯片,福斯汽车宝马汽车和雷诺汽车被迫停工减产。欧洲9月汽车销售下跌23至71万8598辆,创1995年以来最低水准。欧洲汽车制造商协会主席宝马博世再砸4亿欧元扩增芯片产量百能云芯德国车用科技公司博世今日发布声明,称明年将投资超过4亿欧元(约4。67亿美元)用于扩增在德国和马来西亚的芯片生产线,以抵御全球芯片短缺问题。声明指出,此次预算大部分用于今年6月开始韩流又至,中国围棋该清醒了10月28日,第二十六届三星杯四强战罢,中国两人杨鼎新和赵晨宇分别负于韩国的申真谞和朴廷桓。韩国包揽了此次三星杯的冠亚军。中国围棋的世界大赛有一段长达近20年黑暗的时光,长期被韩国日本火山喷发!瑞萨Sony三菱电机等大厂受影响百能云芯据日本广播协会(NHK)报道,气象厅发表消息称,熊本县阿苏山当地时间20日上午11时43分前后发生火山喷发,灰柱高度达3500米,警戒等级也从1级的留意活火山提升至3级的火山口周边行业非码获颁20192020年度中国智慧餐饮金牌服务商奖每一次的疫情和灾难,都会带来社会经济产业格局的变革。2020年,全行业总体形势严峻,一夜之间,数字化成了所有线下门店的必选项。疫情的出现不仅催化了线上直播带货等赚钱手段,更让全社会78官测ACTOYS综合系列盲盒款太鼓达人中国之旅系列文章转自78DM前排感谢ACTOYS提供本次的评测件商品名ACTOYS综合系列盲盒款太鼓达人中国之旅系列商品价格69元本期测评为大家带来的是来自人气音游太鼓达人的衍生品盲盒太鼓达人
华为mate30,在2021年底还是一部好手机吗?mate30发布于2019年9月,现在已到2021年底,时间过了两年多了,按说安卓阵营的手机更新迭代速度很快,但是这款手机依然在很多地方能看到很多人使用,在办公室,在地铁上,在商场普通人如何看待社区团购社区团购这种购物模式,风靡全国。我位于安徽省宿州市,连乡镇都开通了业务。裹挟着资本的无限撒钱,人人都知道,都会买,甚至6,7十岁的人也玩的很溜。这种模式产生了一批从业者,团长,享受值得关注的三只股票1昆仑万维,元宇宙概念,数字货币,虚拟现实,在线教育等多重概念。已经突破下降趋势,上升趋势形成。资金连七天净流入,上涨时放量,回调时缩量,洗盘迹象明显,后期将会波浪上涨。2四方股份加密货币网站惊现bug一枚比特币报价7800亿美元,以太坊5200亿美元用户享受了一把短暂暴富的快乐感觉北京时间12月15日早上610左右,加密货币交易所Coinbase和CoinMarketCap网站数据闪现Bug,多个加密货币的报价出错。在Coin历时3年研发,OPPO发布首颗自研NPU芯片马里亚纳MariSiliconX作者凌敏自研NPU芯片,可能只是一个开始。OPPO发布首颗自研NPU芯片在12月14日举行的OPPO未来科技大会2021上,OPPO正式发布首颗自研NPU芯片马里亚纳MariSil明日主题前瞻新能源车光伏风电应用增长薄膜电容器订单数倍于产能的盛况正在出现今日导读新能源车光伏风电应用增长,该产品订单数倍于产能的盛况正在出现,未来三年或将持续供不应求新一轮特高压项目建设大规模开展,这类产品是特高压的关键性材料,这家公司已向主流厂家稳定终于等到你iOS15。2正式版大更新文明美无限经过一个半月,共计6个测试版之后,iOS15。2正式版终于来了。这不就在今天凌晨,苹果发布了iOS15。2正式版系统,距离上个正式版一个多月之隔。iOS15。1正式版系统物联网通信协议大汇总随着物联网设备数量的持续增加,这些设备之间的通信或连接已成为一个重要的思考课题。通信对物联网来说十分常用且关键,无论是近距离无线传输技术还是移动通信技术,都影响着物联网的发展。而在过度收集个人信息?涉及淘宝饿了么昨天(14日),中国消费者协会发布50款App账号注销及自动化推荐退订测评报告显示在是否可以顺利注销App账号方面,50款App中有20款App存在不同程度问题,占总排查比例的40首批航运智利车厘子到货京东万吨直采12月13日凌晨,随着首批从智利航运至中国的1200吨车厘子到货,京东生鲜与智利头部车厘子出口商GarcesFruit吉制在广州打开第一批集装箱货柜,全球最大规模的车厘子消费季进入终于,这些手机品牌决定加入华为HMS阵营大家都知道,国内智能手机市场是非常卷的!在过去的20年里,国产手机行业经历了多次的发展和重组整个市场格局都发生了不小的变化从3G时代的中华酷联,到4G时代的百花争放。但随着市场接近