//原始数据先转成树结构private List<TaobaoCategoryResp> recursionMethodTaoBao(List<TaobaoCategoryResp> treeList) {List<TaobaoCategoryResp> trees = new ArrayList<>();for (TaobaoCategoryResp tree : treeList) {// 找出父节点if ("0".equals(tree.getParentCategoryId())) {// 调用递归方法填充子节点列表trees.add(findChildrenTaoBao(tree, treeList));}}return trees;}private TaobaoCategoryResp findChildrenTaoBao(TaobaoCategoryResp tree, List<TaobaoCategoryResp> treeList) {for (TaobaoCategoryResp node : treeList) {if (tree.getCategoryId().equals(node.getParentCategoryId())) {if (tree.getChildren() == null) {tree.setChildren(new ArrayList<>());}// 递归 调用自身tree.getChildren().add(findChildrenTaoBao(node, treeList));}}return tree;}//再通过树结构去模糊查询private List<TaobaoCategoryResp> filterTreeByKeyWordByTaoBao(List<TaobaoCategoryResp> data, String keyword) {if (CollectionUtils.isEmpty(data)) {return data;}filterByTaoBao(data, keyword);return data;}/*** 递归方法* @param list 任意层级的节点* @param keyword 关键字*/private void filterByTaoBao(List<TaobaoCategoryResp> list, String keyword){Iterator<TaobaoCategoryResp> parent = list.iterator();while (parent.hasNext()){//当前节点TaobaoCategoryResp t = parent.next();if (StrUtil.isNotEmpty(keyword) && !t.getCategoryName().contains(keyword)) {//当前节点不包含关键字,继续遍历下一级// 取出下一级节点List<TaobaoCategoryResp> children = t.getChildren();// 递归if (!CollectionUtils.isEmpty(children)) {filterByTaoBao(children, keyword);}//下一级节点都被移除了,那么父节点也移除,因为父节点也不包含关键字if (CollectionUtils.isEmpty(t.getChildren())) {parent.remove();}} else {//当前节点包含关键字,继续递归遍历//子节点递归如果不包含关键字则会进入if分支被删除List<TaobaoCategoryResp> children = t.getChildren();// 递归if (!CollectionUtils.isEmpty(children)) {filterByTaoBao(children, keyword);}}}}

java树结构模糊查询相关推荐

  1. java有模糊查询吗,到底Java里的模糊查询语句该怎么写

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 现在String sql="select * from car where carName like '%'+?+'%'";可以查询出 ...

  2. java mongodb 模糊查询_Java操作MongoDB插入数据进行模糊查询与in查询功能的方法

    Java操作MongoDB插入数据进行模糊查询与in查询功能 由于需要用MongoDB缓存数据,所以自己写了一套公共的存放和读取方法 具体如下: 存放mongodb: /** * 公共方法:设置Obj ...

  3. Java里模糊查询的英文_MyBatis实现模糊查询的几种方式

    在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: ...

  4. java姓名模糊查询_java 模糊查询。(转)

    package testSortAlgorithm; import java.util.ArrayList; import java.util.List; public class ListLike ...

  5. java姓名模糊查询_模糊查询(仅针对后端)

    只是后台完成 没有跟前台连接 需求 :可通过姓名.电话.邮件来模糊查询 1.mapper.xml 注意 对象"com.catgo.admin.entity.User" 这个包名是J ...

  6. Java(Servlet)模糊查询

    1.引用layui框架 <link rel="stylesheet" href="layui/css/layui.css" type="text ...

  7. java中模糊查询sql怎么写,mybatis模糊查询sql,

    mybatis模糊查询sql, 今天下午做的一个功能,要用到模糊查询,字段是description,刚开始我的写法用的是sql中的模糊查询语句, 但是这个有问题,只有将字段的全部值传入其中,才能查询, ...

  8. java ftp模糊查询_前端js模糊搜索(模糊查询)

    1.html结构: /*查询结果放ul里面*/ 2.css样式: #searchShop{ line-height:28px; text-indent:5px; width:180px; float: ...

  9. java表格模糊查询_使用java图形报表时,如何进行模糊查询

    模糊查询是利用"_"表示单个字符和"%"表示任意个字符进行匹配的.一些常见的格式如下: Select * from 表名 where 列名 like '%'; ...

最新文章

  1. (C++)1010 一元多项式求导 --需二刷
  2. 总结:一些关于 CPU 的基本知识
  3. tensorflow系列之1:加载数据
  4. Science上发表的超赞聚类算法
  5. eclipse+webservice开发实例
  6. 慎用SELECT INTO复制表
  7. [渝粤教育] 西南科技大学 电子产品制造工艺 在线考试复习资料
  8. 重磅!2020中国高校毕业生月薪排名:清华第1,24高校过万,你呢?
  9. 设计模式笔记[四种模式+四种原则]
  10. Java—接口(工厂模式代理模式)
  11. 提取voc数据集中特定的类
  12. git clone error port 443: Timed out
  13. spring复杂数据类型传递
  14. 活动报名 | 苏州工业园区领军人才项目申报宣讲对接会
  15. 旷视孙剑团队提出AutoML神经架构搜索新方法:单路径One-Shot,更精确更省时
  16. linux基本使用(一)
  17. pgadmin4 如何改成中文版
  18. graphviz linux教程,linux下做图工具——graphviz安装配置
  19. excel日期改成字符类型_Excel表格中怎么把日期格式转换成文本格式?excel表格自定义格式的日期...
  20. IT十大最尴尬瞬间 盖茨遭遇Win98死机列榜首

热门文章

  1. Chart.js与ECharts.js图表组件对比与使用
  2. 如何搭建数据指标监测体系?
  3. 抽象语法树的简单原理
  4. 苹果试玩换个新id行不_关于更换苹果ID的事
  5. parameter estimation for text analysis
  6. 做事必须搞清10个顺序之我想7.发展:先站住,再站高!
  7. IQ正交调制及星座图
  8. 使用 tree 命令生成目录
  9. word表格标题和表格如何不分开
  10. windows与mac文件夹共享