1、我们平时开发都会遇到返回树形结构数据,很多时候写的方式很慢,我写一种较快的方式,如有bug请各位大佬指出
首先一个接口,参数keyWord
返回结果对象
Group对象就是自己需要的字段
1、实现思路:
1.1、先根据keyWord查询所有结果,普通的sql
1.2、循环遍历子级
循环先遍历所有结果集,以parentId根节点作为基础,我这里用“0”作为根节点
把遍历的结果集收集到新的list对象,如果keyWord为空时,就返回所有的树形结果,否则就只返回关键字结果集(非树形)
1.3、然后调用递归
上图 这里再遍历每一个子级,把子级添加到自己子级下面(关键)
1.4、测试结果如下:
keyWord不为空时查找的结果:
keyWord为空时结果:
{ |
这种方式在数据量较大或者子级较多的时候,比纯sql的restMap方式快很多
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/288513.html