根据子类查询父类

1.如果改子类有父类,则把父类加入子类的父ID中

private static List breadthParentFirst(List rootTree) {
        if (CollectionUtils.isEmpty(rootTree)) {
            return Lists.newArrayList();
        }
        List mentVoList=Lists.newArrayList();
        rootTree.forEach((root) -> {
            Queue queue = new LinkedList();
            queue.offer(root);
            while (!queue.isEmpty()){
                MentVo  tree = (MentVo) queue.poll();
                List parent = tree.getParent();
                if (!CollectionUtils.isEmpty(parent)) {
                    Iterator var5 = parent.iterator();
                    while (var5.hasNext()) {
                        MentVo child = (MentVo) var5.next();
                        queue.offer(child);
                    }
                }
                mentVoList.add(tree);
            }
        });
        return mentVoList;
}

2.如果父类id不为空,则查询该子类的父类。

Map> addListMap = departmentList.stream()
                .filter(depart -> Objects.nonNull(depart.getId())).collect(Collectors.groupingBy(MentVo::getId));
        departmentList.forEach((item) -> {
            if (!CollectionUtils.isEmpty(addListMap.get(item.getParentid()))) {
                item.setParent(addListMap.get(item.getParentid()));
            }
        });
        departmentList.forEach((item) -> {
            item.setLevel(breadthParentFirst(item.getParent()).size());
        });
        departmentList = departmentList.stream().sorted((x, y) -> {
            return x.getLevel().compareTo(y.getLevel());
        }).collect(Collectors.toList());

Original: https://www.cnblogs.com/eternality/p/16688343.html
Author: 逆梦
Title: 根据子类查询父类

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622072/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • nginx quic实验

    扫盲文档: https://http3-explained.haxx.se/zh 最终用 quiche+nginx-1.16 和 quiche+curl 完成了实验环境的搭建。 w…

    Java 2023年5月30日
    068
  • 从源码中理解Spring Boot自动装配原理

    SpringBoot 定义了一套接口规范,这套规范规定: SpringBoot在启动时会扫描外部引用jar包中的 META-INF/spring.factories文件,将文件中配…

    Java 2023年6月16日
    082
  • 【SpringCloud-Alibaba系列教程】1.环境搭建以及注意事项

    一、开发环境 JDK 1.8SpringBoot 2.1.7.RELEASESpringCloud-Alibaba 2.1.2.RELEASE数据库MySQL 5.8如果需要修改版…

    Java 2023年6月5日
    068
  • Docker安装mysql

    [root@VM_177_101_centos xieshuang]# docker pull mysql:5.7.18 5.7.18: Pulling from library/…

    Java 2023年6月5日
    053
  • 设计模式在 Spring 框架中的良好应用

    在开始正文之前,请你先思考几个问题: 你项目中有使用哪些 GOF 设计模式 说一说 GOF 23 种设计模式的设计理念 说说 Spring 框架中如何实现设计模式 假设我是面试官问…

    Java 2023年5月30日
    066
  • Spring(四):HelloSpring

    上一篇学习了控制反转(IoC)的本质和具体实现方法,这次我们就学习写一个小的项目来体验这个过程。 一、项目构建 1.Maven依赖(导包) <dependencies>…

    Java 2023年6月15日
    079
  • 通过nginx 访问 centos 7 服务器上的.Net Core

    先安装依赖 yum -y install pcre-devel openssl openssl-devel yum -y install gcc gcc-c++ autoconf …

    Java 2023年5月30日
    085
  • Java学习 (21) 对象篇(01)面向过程&面向对象

    面向过程&面向对象 面向过程VS面向对象 面向过程 面向对象 面向对象的本质 讲解视频(狂神说Java) 面向过程&面向对象 面向过程VS面向对象 面向过程 步骤清…

    Java 2023年6月8日
    049
  • 实战派 | Java项目中玩转Redis6.0客户端缓存!

    原创:微信公众号 &#x7801;&#x519C;&#x53C2;&#x4E0A;,欢迎分享,转载请保留出处。 哈喽大家好啊,我是Hydra。 在前…

    Java 2023年6月5日
    090
  • 架构师需要懂的环境配置标准化

    基本概述 在真实的研发环境中,一般存在 local、 developer、 test、 product等等环境。如何在这些环境中,实现统一的、标准化的配置问题是架构师需要考虑的一件…

    Java 2023年6月5日
    081
  • Spring Boot 如何干掉 if else?

    需求 这里虚拟一个业务需求,让大家容易理解。假设有一个订单系统,里面的一个功能是根据订单的不同类型作出不同的处理。 订单实体: service接口: 传统实现 根据订单类型写一堆的…

    Java 2023年5月30日
    072
  • Linux磁盘操作命令

    挂载硬件设备 Mount 用于挂载文件系统 “mount /dev/cdroom /media/cdroom” -a 挂载所有在/etc/fstab 中定义…

    Java 2023年6月7日
    073
  • 建造者模式(创建型)

    建造者模式 介绍 建造者模式注重的是部件构建的过程,意在 通过一步一步地精确构造出一个复杂的对象。 可以将建造者模式理解为,假设我们有一个对象需要建立,这个对象是由多个组件(Com…

    Java 2023年6月15日
    073
  • Mybatis-Plus的使用

    1.什么是Mybatis-Plus 2.为什么要学习Mybatis-Plus 3.入门示例 3.1 说明 3.2 准备工作 3.3 配置步骤 4.常用配置 4.1 实体类全局配置 …

    Java 2023年6月7日
    070
  • java函数式编程之Collector、Optional、CompletableFuture详解

    1. Stream.collect() collect就是一个归约操作,就像reduce一样可以接受各种做法作为参数,将流中的元素累积成一个汇总结果 reduce不会修改累计值对象…

    Java 2023年6月9日
    062
  • 2018年最新JAVA面试题总结之基础(1)

    转自于:https://zhuanlan.zhihu.com/p/39322967 1、JAVA中能创建volatile数组吗?volatile能使得一个非原子操作变成原子操作吗?…

    Java 2023年6月13日
    094
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球