java返回树形结构关键字搜索结构
2022/9/10 1:23:03
本文主要是介绍java返回树形结构关键字搜索结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、我们平时开发都会遇到返回树形结构数据,很多时候写的方式很慢,我写一种较快的方式,如有bug请各位大佬指出
首先一个接口,参数keyWord
返回结果对象
Group对象就是自己需要的字段
1、实现思路:
1.1、先根据keyWord查询所有结果,普通的sql
1.2、循环遍历子级
循环先遍历所有结果集,以parentId根节点作为基础,我这里用“0”作为根节点
把遍历的结果集收集到新的list对象,如果keyWord为空时,就返回所有的树形结果,否则就只返回关键字结果集(非树形)
1.3、然后调用递归
上图 这里再遍历每一个子级,把子级添加到自己子级下面(关键)
1.4、测试结果如下:
keyWord不为空时查找的结果:
keyWord为空时结果:
{ "data": [ { "id": "1", "appId": "21", "parentId": "0", "name": "1eww", "code": "32", "sort": 0, "delFlag": 0, "createBy": "11", "createTime": "2022-09-07T18:12:20", "updateBy": null, "updateTime": "2022-09-07T18:12:20", "children": [ { "id": "2", "appId": "21", "parentId": "1", "name": "dds", "code": "22", "sort": 0, "delFlag": 0, "createBy": "21", "createTime": "2022-09-07T18:12:38", "updateBy": null, "updateTime": "2022-09-07T18:12:38", "children": [ { "id": "3", "appId": "21", "parentId": "2", "name": "ew", "code": "33", "sort": 0, "delFlag": 0, "createBy": "3", "createTime": "2022-09-07T18:12:54", "updateBy": null, "updateTime": "2022-09-07T18:12:54", "children": null } ] } ] }, { "id": "4", "appId": "21", "parentId": "0", "name": "rreee", "code": "w", "sort": 0, "delFlag": 0, "createBy": "4", "createTime": "2022-09-07T18:38:42", "updateBy": null, "updateTime": "2022-09-07T18:38:42", "children": null } ], "type": "success", "code": "200", "msg": "处理成功", "cause": null, "date": "2022-09-09T10:44:53.378+00:00", "spent": 48, "count": 0, "pageSize": 0, "pageNumber": 0, "totalPages": 0 } |
这种方式在数据量较大或者子级较多的时候,比纯sql的restMap方式快很多
这篇关于java返回树形结构关键字搜索结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?