Java教程

java返回树形结构关键字搜索结构

本文主要是介绍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返回树形结构关键字搜索结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!