java树结构模糊查询
//原始数据先转成树结构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树结构模糊查询相关推荐
- java有模糊查询吗,到底Java里的模糊查询语句该怎么写
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 现在String sql="select * from car where carName like '%'+?+'%'";可以查询出 ...
- java mongodb 模糊查询_Java操作MongoDB插入数据进行模糊查询与in查询功能的方法
Java操作MongoDB插入数据进行模糊查询与in查询功能 由于需要用MongoDB缓存数据,所以自己写了一套公共的存放和读取方法 具体如下: 存放mongodb: /** * 公共方法:设置Obj ...
- Java里模糊查询的英文_MyBatis实现模糊查询的几种方式
在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: ...
- java姓名模糊查询_java 模糊查询。(转)
package testSortAlgorithm; import java.util.ArrayList; import java.util.List; public class ListLike ...
- java姓名模糊查询_模糊查询(仅针对后端)
只是后台完成 没有跟前台连接 需求 :可通过姓名.电话.邮件来模糊查询 1.mapper.xml 注意 对象"com.catgo.admin.entity.User" 这个包名是J ...
- Java(Servlet)模糊查询
1.引用layui框架 <link rel="stylesheet" href="layui/css/layui.css" type="text ...
- java中模糊查询sql怎么写,mybatis模糊查询sql,
mybatis模糊查询sql, 今天下午做的一个功能,要用到模糊查询,字段是description,刚开始我的写法用的是sql中的模糊查询语句, 但是这个有问题,只有将字段的全部值传入其中,才能查询, ...
- java ftp模糊查询_前端js模糊搜索(模糊查询)
1.html结构: /*查询结果放ul里面*/ 2.css样式: #searchShop{ line-height:28px; text-indent:5px; width:180px; float: ...
- java表格模糊查询_使用java图形报表时,如何进行模糊查询
模糊查询是利用"_"表示单个字符和"%"表示任意个字符进行匹配的.一些常见的格式如下: Select * from 表名 where 列名 like '%'; ...
最新文章
- (C++)1010 一元多项式求导 --需二刷
- 总结:一些关于 CPU 的基本知识
- tensorflow系列之1:加载数据
- Science上发表的超赞聚类算法
- eclipse+webservice开发实例
- 慎用SELECT INTO复制表
- [渝粤教育] 西南科技大学 电子产品制造工艺 在线考试复习资料
- 重磅!2020中国高校毕业生月薪排名:清华第1,24高校过万,你呢?
- 设计模式笔记[四种模式+四种原则]
- Java—接口(工厂模式代理模式)
- 提取voc数据集中特定的类
- git clone error port 443: Timed out
- spring复杂数据类型传递
- 活动报名 | 苏州工业园区领军人才项目申报宣讲对接会
- 旷视孙剑团队提出AutoML神经架构搜索新方法:单路径One-Shot,更精确更省时
- linux基本使用(一)
- pgadmin4 如何改成中文版
- graphviz linux教程,linux下做图工具——graphviz安装配置
- excel日期改成字符类型_Excel表格中怎么把日期格式转换成文本格式?excel表格自定义格式的日期...
- IT十大最尴尬瞬间 盖茨遭遇Win98死机列榜首