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

Java使用stream把list集合转化为树形结构(一行解决超简单递归)

  一、前言
  我们在日常开发中,必不可少的就是树形结构。有的时候可以使用 mybatis的resultMap  进行转化,有的时候需要进行Java进行手动转化为树结构。今天和大家分析一个JDK8新特性Stream  来实现list到树形结构的转化!二、创建返回前端的实体类VOimport lombok.Data; import java.util.List;  /**  * @author wangzhenjun  * @date 2022/2/28 10:28  */ @Data public class NodeVO {     private String id;     private String name;     private String pid;     private List children;      public NodeVO(String id, String name, String pid) {         this.id = id;         this.name = name;         this.pid = pid;     } } 三、list转树形方法public static List streamToTree(List treeList, String parentId) {     List list = treeList.stream()             // 过滤父节点             .filter(parent -> parent.getPid().equals(parentId))             // 把父节点children递归赋值成为子节点             .map(child -> {                 child.setChildren(streamToTree(treeList,child.getId()));                 return child;             }).collect(Collectors.toList());     return list; } 四、测试public static void main(String[] args) {     NodeVO NodeVO1 = new NodeVO("1","山东省","0");     NodeVO NodeVO2 = new NodeVO("2","青岛市","1");     NodeVO NodeVO3 = new NodeVO("3","市北区","2");     NodeVO NodeVO4 = new NodeVO("4","济南市","1");     NodeVO NodeVO5 = new NodeVO("5","浙江省","0");     NodeVO NodeVO6 = new NodeVO("6","杭州市","5");     NodeVO NodeVO7 = new NodeVO("7","西湖区","6");     List list = new ArrayList<>();     list.add(NodeVO1);     list.add(NodeVO2);     list.add(NodeVO3);     list.add(NodeVO4);     list.add(NodeVO5);     list.add(NodeVO6);     list.add(NodeVO7);     // 默认父节点id为0     List nodeVOList = streamToTree(list,"0");     System.out.println(JSON.toJSONString(nodeVOList)); }
  结果展示: [   {     "children": [       {         "children": [           {             "children": [],             "id": "3",             "name": "市北区",             "pid": "2"           }         ],         "id": "2",         "name": "青岛市",         "pid": "1"       },       {         "children": [],         "id": "4",         "name": "济南市",         "pid": "1"       }     ],     "id": "1",     "name": "山东省",     "pid": "0"   },   {     "children": [       {         "children": [           {             "children": [],             "id": "7",             "name": "西湖区",             "pid": "6"           }         ],         "id": "6",         "name": "杭州市",         "pid": "5"       }     ],     "id": "5",     "name": "浙江省",     "pid": "0"   } ] 五、总结
  也可以使用两个for来实现,小编还是觉得Stream比较优雅哈,哈哈哈!!如果对你有用就点个赞呗!
  推广自己网站的时间到了!!!
  小王博客站

摸着良心说,哪个手机系统最好用?ios系统很久之前是叫iphoneOS,最大的感受得比较稳定和流畅。但是很致命的就是和一些软件水土不服。而且有时候搞点啥的时候就ios系统的最麻烦,要么搞不了要么搞半天。只能说痛苦马云刘强东之争画上句号,刘强东赢了马云刘强东之争马云是阿里巴巴的创始人,也是国内电商行业的开创者,淘宝的诞生改变了无数国人的消费方式。而刘强东则是淘宝最大竞争对手京东的老板,虽然人们对他的评价没有马云那么高,但是得刹车卡钳螺栓出问题?网传特斯拉召回部分Model3车型,不涉国产车型近日,据美国科技媒体Electrek报道,特斯拉宣布将主动召回2018年12月至2021年3月间生产的部分Model3车型,以及2020年1月至2021年1月间生产的部分Model吃鸡玩家618买啥好?双芯旗舰iQOONeo5助你上分无忧眼下正是一年中少有的几次换机热潮618,身边的许多朋友也萌生了换机的念头。而今年,门槛较低价格较为亲民的次旗舰手机市场,一下迎来了多款新机。其中人气最为火爆的新机之一,便是来自iQOPPO柔性屏专利曝光,或成解决折叠屏难题关键!市场迎来新玩家?自从柔性屏诞生以来,众多手机品牌都在致力于折叠屏手机的研发,然而过去已经量产上市的折叠屏手机似乎在市场上并没有掀起多大的波澜,主要原因在于折叠屏其本身所存在的缺陷,再者是在价格方面游戏玩家必选骁龙888旗舰?其实这款骁龙870旗舰的体验会更好截至2021年,iQOO从正式亮相开始到现在已经有两年的时间了。两年的时间说长不长说短也不短,但iQOO在这两年中已经成为了高性能智能手机的代表品牌之一。比如上半年亮相的iQOON适马150600镜头配什么机身最好?你这个问题问的有意思,就好像你有了一碟子醋,包什么馅的水饺才可以配这碟子醋呢?机身不是为镜头而生的,而镜头是为机身而生的,什么样的机身去配什么卡口的镜头。如果你买的镜头是尼康口的,请不要挑战汽车消费者的底线新能源汽车的领头羊特斯拉,因车主上海车展现场维权视频,一时被推上消费者关注和舆论的浪尖,并持续发酵,同时国家相关部门也相继介入,针对特斯拉的刹车失灵事件开展调查。而此次的主角是一汽爱玛科技高辉用科技重新定义造车时代爱玛全系的产品要实现百公里不充电,并将持续在里程动力板块做相关产品技术的发布,实现既有动力又有里程的双百公里模式,最终产品将应用于不同的市场,解决不同群体的里程痛点。爱玛科技集团国哈啰3年亏48亿,为什么共享单车是一门烂生意?曾经喧嚣的共享单车行业,现在只剩下3个大玩家了整合摩拜的美团单车滴滴旗下的青桔5年融资超过200亿的哈啰。但即使是已经变成了寡占市场,这依然是一门亏损看不到头的生意。图片来源视觉中618热门手机点评,这3个理由让你无法拒绝一加9都疯了!都疯了!都疯了!这是业内对于今年618的评价。618的大幕刚刚拉开,各大品牌迅速接连公布了自家活动政策。一加手机意外的成了这场战役的排头兵,一加9全系一加8T都进行了大幅度
如果把地球上的蛇都消灭,会出现什么毁灭性的后果?有些人说的很对。蛇是生物链的一段。蛇和生物链的上下端都有着互相依存的关系。如果蛇灭绝了,那么处在它上端的一些生物就会面临生存危机。如一些以蛇为生的动物(如一些鳥,隼,獴,一些猛禽等霍金说200年内人类将灭绝?那么人类对地球的迫害该谁来埋单?谢谢悟空问答邀请!至于200年内人类面临灭绝,是不是霍金说的,并不重要,关键是能惊醒今天的人类,不要在自掘坟墓的道路上继续裸奔。有句话说,有则改之,无则加勉,这句话永不过时。关键是潘建伟是否诺奖不重要,重要的是潘建伟团队的量子计算机和量子通信是否能够领先世界,大家认为呢?潘教授团队研究的东西,一种情况可能是已经站在了目前所谓量子计算机与通信科技的前端,另一种就是伪科技。没有第三种可能。为什么这么说?因为从其理论上看,不太符合现在的科学观。也可能是潘宗教背景下人人皆罪人,而儒家文化背景下的圣贤和君子却近乎完美,你怎么看这种差异?我是萨沙,我来回答。这就是基督教文明和儒教(注意不是儒家,有本质不同)文明最大的一个区别。说通俗点,就是人性本恶和人性本善论的区别。基督教认为,人性本恶,人出生就带有原罪,需要不断为什么说没有契约精神,道德就是水中月镜中花,就是浮云你怎么看儒家的道德?我认为这里的契约精神是借用了常说的合同的概念,即签订合同的双方谁应该作什么,把所有丑话都说在前头并写进合同里,严格按合同规定办事。契约精神是把执行合同的做法扩大到全社会,即所有职务鲸鱼是肉做的,潜入万米深都没事,为什么钢铁打造的潜艇容易被压扁?大部分鲸鱼只能潜入水深500米左右的海里,只有少数抹香鲸可以潜入2000米深的海域进行捕杀,这还是源自于抹香鲸喜欢吃大乌贼,而这样的乌贼在水深2000米左右活动,为了吃,它们也是付你听过或是经历过哪些与骚扰电话斗志斗勇的故事?天苍苍野茫茫风吹草低现牛羊!骚扰我还真遇到过比较难缠的骚扰电话,也不能说是骚扰,但是当时确实扰的我很烦。现在就说说具体发生了什么,就是今年开春,在19年三月左右,我晚上11点加班完如果你昨天刚离职却忘了退公司的群,转天一早领导找你让你尽快退群,你会做何感想呢?我遇到过一个类似的事情。2008年我离职,手续都办完之后,直系领导突然告诉我,让我第二天再来一趟。她说得非常直白把你的笔记本电脑带来,我要亲自把有关公司的资料都删除。我听了这话非常2019是过去十年最坏的一年,也是未来十年最好的一年,择业或创业中的你怎么看?机会与风险并存的一年,经济形式还是不容乐观。实体行业继续难行。房地产金融行业进入瓶颈期!整体而言,2019年,不容乐观。而中央政府也看到了这一点。今年的减税政策是前所未见的。当然,筑牢数字安全屏障,拒绝无孔不入的网络攻击来源科技日报5月12日,美国动视暴雪公司发布消息称,其战网服务正遭受DDOS(分布式拒绝服务)攻击,可能会导致其旗下游戏出现高延迟和网络中断的情况。不久前,北京健康宝在使用高峰期间论vivox80拿下3。5k5k价位的销量第一,天玑9000之王实至名归蓝厂的影像旗舰机vivoX80系列在各个方面都是全新的升级,带给用户不仅是配置升级,还是体验升级。简单地说,vivox80可以看作是vivox70Pro,vivox80Pro可以看