6、获取树形结构数据递归写法

STM32定时器ARR寄存器详解:从‘水桶接水’到精准测速,你的PWM和编码器都靠它 本文深入解析STM32定时器ARR寄存器的核心原理与应用技巧,从PWM波形生成到编码器测速实战。通过水桶模型和硬件本质的比喻,揭示ARR如何作为定时器的'心跳节拍器',并详细探讨其在动态调频、死区时间配置和高精度PWM中的关键作用。特别针对编码器模式下的ARR配置和溢出补偿算法进行优化建议,帮助工程师提升系统性能和实时性。 阅读详情

1、mysql库表字段
学习:构建表结构时的规范,字段类型的选择

CREATE TABLE `pms_category` (
  `cat_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类id',
  `name` char(50) DEFAULT NULL COMMENT '分类名称',
  `parent_cid` bigint(20) DEFAULT NULL COMMENT '父分类id',
  `cat_level` int(11) DEFAULT NULL COMMENT '层级',
  `show_status` tinyint(4) DEFAULT NULL COMMENT '是否显示[0-不显示,1显示]',
  `sort` int(11) DEFAULT NULL COMMENT '排序',
  `icon` char(255) DEFAULT NULL COMMENT '图标地址',
  `product_unit` char(50) DEFAULT NULL COMMENT '计量单位',
  `product_count` int(11) DEFAULT NULL COMMENT '商品数量',
  PRIMARY KEY (`cat_id`),
  KEY `parent_cid` (`parent_cid`)
) ENGINE=InnoDB AUTO_INCREMENT=1433 DEFAULT CHARSET=utf8mb4 COMMENT='商品三级分类';

从表可以得到通过parent_cid这个字段将整个数据结构串联在一起的
在这里插入图片描述
2、通过java代码获取并构建树形结构数据返回
可以在实际开发中借鉴使用
1)运用java8使用了Stream()的高级写法,并使用sorted()排序

public List<CategoryEntity> listWithTree() {
        // 1、查询所有数据
        List<CategoryEntity> entities = baseMapper.selectList(null);

        // 2、查询子集
        List<CategoryEntity> collect = entities.stream()
                .filter(category -> category.getParentCid() == 0)
                .map(categoryEntity -> {
                            categoryEntity.setChildren(getChildrens(categoryEntity, entities));
                            return categoryEntity;
                        }
                ).sorted((menu1, menu2) -> {
                            return (menu1.getSort() == null ? 0 : menu1.getSort()) - (menu2.getSort() == null ? 0 : menu2.getSort());
                        }
                ).collect(Collectors.toList());

        return collect;
    }

2)递归获取子级信息

public List<CategoryEntity> getChildrens(CategoryEntity root, List<CategoryEntity> all) {
        List<CategoryEntity> collect = all.stream().filter(category -> category.getParentCid().equals(root.getCatId()))
                .map(categoryEntity -> {
                            categoryEntity.setChildren(getChildrens(categoryEntity, all));
                            return categoryEntity;
                        }
                ).sorted((menu1, menu2) -> {
                            return (menu1.getSort() == null ? 0 : menu1.getSort()) - (menu2.getSort() == null ? 0 : menu2.getSort());
                        }
                ).collect(Collectors.toList());
        return collect;

3)测试
在这里插入图片描述

【华为OD机试真题 新系统】1029、字符串处理 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 【华为OD机试真题 新系统】1029、字符串处理 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备战华为od, 阅读详情

相关推荐

视觉SLAM十四讲--第13讲 实践:设计SLAM系统(最详细的代码调试运行步骤)

最详细的代码调试运行避坑说明,也包含了我自己对代码的理解,如有理解错误的地方,欢迎指正交流。

记录和分享 1万+

Java处理MySQL获取树形数据,高效管理层级关系!

在现代软件开发中,处理数据库中的层级关系是一个常见的需求。无论是组织结构、商品分类还是菜单系统,树形结构的数据模型都能很好地反映这些层级关系。然而,如何在Java中高效地从MySQL数据库中获取并处理这种树形数据,却是一个技术挑战。今天,我将分享一种创新的方法,帮助你轻松实现这一目标。

LA1245780的博客 511

CST微波工作室端口设置保姆级教程:从波导端口到离散端口,手把手教你搞定S参数仿真

本文提供CST微波工作室端口设置的详细教程,涵盖波导端口和离散端口的选择与配置,助力工程师精准完成S参数仿真。通过微带线滤波器案例,详解端口尺寸、阻抗设置及常见问题排查,提升仿真效率与准确性。

weixin_42570296的博客 358

java 处理mysql获取树形的数据

java 处理mysql获取树形的数据 目录 处理一: 使用对象的方式 TreeModel TreeModelList TreeModelListTest 结果: 处理二: Map对象的方式 CommonTree: CommonTreeTest 总结: 在使用mysql数据库,要获取到省市区的数据(以福建的数据为例),返回树型结构的数据。 Mysql 是没办法用oracle的connect by prior了,直接数据库进行查询,因此考虑用java递归遍历,获取到树形的数据..

一路向前 3629

RT-Thread学习笔记(5):SPI驱动框架分析

1、两个设备模型 在spi驱框架中,一般会自己初始化一个总线设备(rt_spi_bus),当我们通过挂载后,会相应注册一个从设备(rt_spi_device)。 1、总线设备模型 struct rt_spi_bus { struct rt_device parent; rt_uint8_t mode; const struct rt_spi_ops *ops; struct rt_mutex lock; struct rt_spi_device *owner; };

BLBQ962464的博客 1万+

仅使用 Python 创建的 Web 应用程序(前端版本)第03章Streamlit-多页面

接下来,我们将解释多页面切换。Streamlit 没有“多页面”或“页面路由”等功能。另一方面,通过根据用户动作切换要执行的功能,可以使其看起来好像存在“多个页面”。注意:我认为它类似于 SinglePageApplication (SPA)。然而,根据 React、Vue 等中使用的 URL 路径来更改页面的路由很困难。还有一个用于获取查询参数的实验性 API,但如果您确实需要这种功能,我认为认真尝试编写 React 或 Vue 是个好主意。我们来看一个通过按下按钮来切换页面的示例,如下所示。

xianyinsuifeng的博客 1326

Java实现递归查询树结构

我们在实际开发中,肯定会用到树结构,如部门树、菜单树等等。Java后台利用递归思路进行构建树形结构数据,返回给前端,能以下拉菜单等形式进行展示。今天,咱们就来说说怎么样将List集合转换成TreeList。

sinat_40572875的博客 6496

大学生数学建模赛题解析及优秀论文-2021电工杯A题高铁牵引供电系统运行数据分析及等值建模(附Python代码)

我国是世界上电气化铁路运营里程最长、服役电力机车型号最多、运营最 繁忙的国家。截至 2020年底,我国铁路年消耗电量约800亿千瓦时,约占三峡 年总发电量的 80%。图1为高速铁路牵引供电系统示意图,主要包括牵引变电所、牵引网和动车 组。牵引变电所将 220kV三相电压转换为满足电力机车运行的27.5kV单相电压, 其核心元件是牵引变压器。牵引网由馈线、接触网、钢轨、回流线等组成,完成 对电力机车的送电任务。...

wenyusuran的专栏 3169

Mysql树形结构递归查询

mysql针对树形结构数据的递归查询

计算机小白的奋起 1971

小白也能轻松部署 OpenClaw:OpenClaw可视化部署工具+OpenClaw可视化管理工具分享

分享一个OpenClaw可视化一键部署工具,帮你快速打造属于自己的AI助手 🚀

XiaoqiangClub的博客 6710

假新闻检测论文分享(17)CAFE(Cross-modal Ambiguity Learning for Multimodal Fake NewsDetection)

本文首先从信息论的角度对跨模态歧义性学习问题进行形式化描述,利用不同单模态特征之间的分布散度量化其歧义性;然后,提出了一种模糊度感知的多模态假新闻检测方法CAFE。CAFE通过自适应地聚合单模态特征和跨模态关联,即在跨模态歧义性较弱时依赖单模态特征,在跨模态歧义性较强时参考跨模态关联,从而提高假新闻检测精度。提出了跨模态歧义学习问题,这是多模态假新闻检测的一个关键挑战,并提出了一种基于KL散度的方法,通过估计其特征分布的散度来量化文本和图像之间的歧义。

weixin_41964296的博客 1724

MySQL树形表查询优化

这种方案挺常见,在数据量少的时候可以采用,但是量一旦大了以后呢,性能变差 且 通过Mybatis拼接完SQL以后可能会超长(而通过多线程分批后聚合编码又较为复杂)因为其他方案本质都是通过 IN 来查询数据,虽然还可以进一步对 IN 方案进行优化(例如:业务上多线程分批IN,EXISTS等),但还是略逊一筹。但这种方式也有个弊端,那就是有的项目上还没用上MySQL8.0,那该如何处理呢?请接着看第四个通用方案。一个代理可以有很多子代理,然后子代理又有子代理,业务要求父代理能看到所有子代理的数据。

做从未做的事,叫成长;做不愿做的事,叫改变;做不敢做的事,叫突破。 4043

Python高阶爬虫:逆向工程模拟Wind/同花顺等金融终端数据抓取

本文详细阐述了模拟金融数据终端进行数据抓取的全套技术方案。我们从法律合规性讲起,选择了Playwright作为核心自动化工具,通过两个实战案例(同花顺网页版和Wind桌面版)演示了从分析、模拟到数据解析的完整流程,并进一步介绍了构建健壮爬虫系统所需的高级技巧。我们的策略是:启动一个由Playwright控制的浏览器,模拟真人登录,然后监听所有网络请求,从中过滤出我们需要的那个数据API。if key in ['f43', 'f169', 'f170', 'f46', 'f60']: # 价格类字段。

2201_76125261的博客 546

java递归实现树形结构数据

java递归实现树形结构数据

陈小翔的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

vue获取到树形结构后递归遍历数据,生成树形结构数据,无限级

1.需求 做的是个三级联动的数据 options: [{ value: 1, label: '东南', children: [{ value: 2, label: '上海', children: [ { value: 3, label: '普陀' }, { value: 4, label: '黄埔' }, ...

weixin_41166682的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java 递归查询部门树形结构数据

说明:在开发中,我们经常使用树形结构来展示菜单选项,如图: 那么我们在后端怎么去实现这样的一个功能呢? 1、数据库表:department 2、编写sql映射语句 <select id="selectDepartmentTrees" resultType="com.welb.entity.Department"> select * from department ...

祖哥的博客 3万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

递归获取树形结构数据某个节点下的所有子节点数据

递归获取树形结构数据某个节点下的所有子节点数据 /// <summary> /// 获取组织结构树 /// </summary> /// <param name="list"></param> /// <pa...

XR1986687846的博客 7157

java递归构建树形结构

只有一个根节点数据结构: 1、准备表结构及对应的表数据 a、表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHAR2(50), PID NUMBER //父节点 ) b、表数据: insert into tb_tree (CID, CNAME, PID) values (1, '中国', 0); insert i...

qq_42765276的博客 2万+

递归创建树形结构数据

递归创建树形结构数据 创建一个树形结构对象,然后用递归算法,返回前端一个树形的list集合 1、先创建实体对象,树形结构必须要有关联的pid字段 @Data @AllArgsConstructor @NoArgsConstructor public class Node implements IBaseTree{ /** * 主键id */ private Integer id; /** * 名称 */ private String

weiyifang11的博客 2118

快速获取树形结构数据

快速获取树形结构数据 网上看了下获取树形结构数据的方法有很多种, 我这种我个人感觉相对简单和方便点, 下面我就先贴出需求 : // 后端需要返回的结果 let menuObj={ '属性1':{ 'a1':{ '子类1':{ '孙类1':{ '牛魔王':{ '哪吒':{....} ...

weixin_39543315的博客 1789

Java递归实现树形结构数据

Java递归实现树形结构数据

dear_Alice_moon的专栏 4528

Java之使用递归查询多级树形结构数据

Java之使用递归查询多级树形结构数据;工作中可能会碰到一个表中存在父子关系,需要查询多级结构的树形数据场景(如图1-1),因此我们可以使用递归来实现

weixin_47390965的博客 8607

js过滤树形结构数据并获取新的树形结构

工作中不时会遇见对树形结构数据的处理,有时候只需要遍历并获取其中一个属性值就行了(这部分内容请参考笔者的另一篇博客JS遍历树形结构方法),有时候我们则需要根据某些条件去过滤并得到新的树形结构数据。 let nodeList = [ {id: '1-1', children: [{id: '1-2-1'}, {id: '1-2-2'}]}, {id: '2-1'},...

qq_34295211的博客 1万+

Java后端递归构建树形结构

记录:在Java后台利用递归思路进行构建树形结构数据,返回给前端,能以下拉菜单等形式进行展示。 简明:为了简化代码,引入Lombok的Jar包,可省略实体类set()、get()方法。 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> ...

彼岸尚有荣光在,应不断记录总结!!! 1万+

java递归生成树形结构菜单

一、mysql表,数据自行准备 CREATE TABLE `sys_menu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pid` bigint(20) DEFAULT NULL, `title` varchar(255) CHARACTER SET utf8 DEFAULT NULL, `path` varchar(255) CHARA...

记录点滴 1万+

Java递归实现树形结构的两种方式

Java递归实现树形结构的两种常见方式。

一宿君 1万+
上一篇: 3、使用renren-generator生成基本代码
下一篇: docker环境安装kafka/Flink/clickhouse镜像
程序员老石
博客等级 码龄8年 286粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值