java 构建树型结构

news/2024/12/26 4:52:22 标签: java, windows, 开发语言

构建属性结构

 public static List<Map<String, Object>> buildTree(List<AreaInfo> dataList) {

        Map<String, Map<String, Object>> nodeMap = new HashMap<>();

        List<Map<String, Object>> result = new ArrayList<>();

        for (AreaInfodata : dataList) {
            String id = data.getAreaCode();
            String label = data.getAreaName();
            Map<String, Object> node = new HashMap<>();
            node.put("id", id);
            node.put("label", label);
            node.put("children", new ArrayList<Map<String, Object>>());
            nodeMap.put(id, node);
        }

        // 构建父子关系
        for (AreaInfodata : dataList) {
            String id = data.getAreaCode();
            String parentId = data.getParentId();
            //判断是否是父级
            if (parentId.equals("100000")) {
                result.add(nodeMap.get(id));
            } else {
                // 否则,将当前节点加入到父节点的children列表
                Map<String, Object> parentNode = nodeMap.get(parentId);
                if (parentNode != null) {
                    List<Map<String, Object>> childrenList = (List<Map<String, Object>>) parentNode.get("children");
                    childrenList.add(nodeMap.get(id));
                }
            }
        }

        return result;
    }
     public List<Map<String, Object>>   bulidAreaInfoTree() {
        List<AreaInfo> all = repository.findAll();
        List<Map<String, Object> >stringObjectMap = buildTree(all);
        return areaInfoMap;
    }

在这里插入图片描述


http://www.niftyadmin.cn/n/5799830.html

相关文章

华为ensp--BGP路由反射器

学习新思想、争做新青年&#xff0c;今天学习的是BGP路由反射器。 实验目的 理解BGP路由反射器的应用场景 理解BGP路由反射器的工作原理 掌握BGP路由反射器的基本配置方法 实验内容 本实验网络包含了两个AS&#xff0c;两个Cluster。R1、R2、R3属于Cluster 1&#xff0c…

攻破 kioptix level 2靶机

在训练中学习&#xff0c;现在开始打靶之旅吧。 一、准备 1.查看攻击机ip确认网段 ip addr > 192.168.5.129 2.主机探测 namp -sP -T5 192.168.5.0/24 .1是主机 .2是网关 .129是攻击机 .131是目标 .254是什么&#xff1f; 3.端口和服务侦测 端口 nmap -sS -T5 -p- 19…

WordPress File Upload 插件 任意文件读取漏洞复现(CVE-2024-9047)

0x01 产品简介 WordPress File Upload插件是一款功能强大的WordPress站点文件上传插件,它允许用户在WordPress站点中的文章、页面、侧边栏或表单中轻松上传文件到wp-contents目录中的任何位置。该插件使用最新的HTML5技术,确保在现代浏览器和移动设备上都能流畅运行,同时也…

MySQL和HBase的对比

Mysql &#xff1a;关系型数据库&#xff0c;主要面向 OLTP &#xff0c;支持事务&#xff0c;支持二级索引&#xff0c;支持 sql &#xff0c;支持主从、 Group Replication 架构模型&#xff08;此处以 Innodb 为例&#xff0c;不涉及别的存储引擎&#xff09;。 HBase &am…

2024-12-24 NO1. XR Interaction ToolKit 环境配置

文章目录 1 软件配置2 安装 XRToolKit3 配置 OpenXR4 安装示例场景5 运行测试 1 软件配置 Unity 版本&#xff1a;Unity6000.0.26 ​ 2 安装 XRToolKit 创建新项目&#xff08;URP 3D&#xff09;&#xff0c;点击进入 Asset Store。 进入“Unity Registry”页签&#xff0…

【0x001D】HCI_Read_Remote_Version_Information命令详解

目录 一、命令概述 二、命令格式及参数说明 2.12. HCI_Read_Remote_Version_Information 命令格式 2.2. Connection_Handle 三、生成事件 3.1. HCI_Command_Status 事件 3.2. HCI_Read_Remote_Version_Information_Complete 事件 四、命令执行流程 4.1. 命令发起阶段(…

寄存器控制LED灯亮

一、整体代码 LED.c #define RCC_APB2ENR (*(volatile unsigned int *)0x40021018) #define GPIOA_CRL (*(volatile unsigned int *)0x40010800) #define GPIOA_ODR (*(volatile unsigned int *)0x4001080C)#define GPIOB_CRL (*(volatile unsigned int *)0x40010C00) #…

k8s备份 ETCD , 使用velero工具进行备份

使用velero工具进行备份 Velero 是由 G0 语言编写的一款用于灾难恢复和迁移工具&#xff0c;可以安全的备份、恢复和迁移Kubernetes 集群资源和持久卷。 Velero 主要提供以下能力: ​ 备份 Kubernetes 集群资源&#xff0c;并在资源丢失情况下进行还原 ​ 将集群资源迁移到其他…