java实现父子多级关联节点的最佳实践

概要

父子节点匹配的的所有节点通常会设计存储在同一张数据表中,通过自连接操作找对孩子节点的父节点,那么这种操作在java中如何处理呢?
一种方式是使用多重循环匹配父节点的孩子节点,另一种方式是使用递归来对当前节点的孩子节点进行匹配,但是个人认为都不算是最佳的父子节点匹配处理方式。这里推荐一种时间复杂度更低的方式来对此场景进行处理,这里会使用使用单层for循环+Map集合进行遍历和匹配

表设计

以菜单表为例:这里想组装成三级菜单,id:菜单id,pid:父菜单id,通过pid与id的匹配来关联菜单层级,0代表顶层菜单
在这里插入图片描述

数据返回效果如下

[
        {
            "value": 1,
            "label": "主页",
            "pid": 0,
            "children": [
                {
                    "value": 2,
                    "label": "菜单1",
                    "pid": 1,
                    "children": [
                        {
                            "value": 4,
                            "label": "子项1",
                            "pid": 2
                        },
                        {
                      
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白条君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值