首页 > 编程语言 >编程日记 后端tags过滤器

编程日记 后端tags过滤器

时间:2024-09-15 21:54:22浏览次数:7  
标签:return tags 编程 List tempTagNameSet 过滤器 new

编程日记 后端tags过滤器

image-20240825155111039

这样查出来了所有的信息,不对

检查是这个地方有问题

image-20240825155220357

改掉

@Override
    public List<User> searchUsersByTags(List<String> tagNameList) {
        //1.先查询所有用户
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        List<User> userList = userMapper.selectList(queryWrapper);
        Gson gson = new Gson();
        //2.在内存中判断是否包含所要求的标签
        return userList.stream().filter(user -> {
            String tagStr = user.getTags();
            Set<String> tempTagNameSet = gson.fromJson(tagStr, new TypeToken<Set<String>>(){}.getType());
            //Optional.ofNullable可以少写一层if判断(如果查询结果为空)
            tempTagNameSet= Optional.ofNullable(tempTagNameSet).orElse(new HashSet<>());
            for (String tagName : tagNameList) {
                if (!tempTagNameSet.contains(tagName)) {
                    return false;
                }
            }
            return true;
        }).map(this::getSafetyUser).collect(Collectors.toList());
        /*        */

image-20240825155334683

ok,成功了

标签:return,tags,编程,List,tempTagNameSet,过滤器,new
From: https://www.cnblogs.com/vastjoy/p/18415721

相关文章

  • 编程日记 批量导入数据
    编程日记批量导入数据1.用可视化界面:适合一次性导入,数据量可控2.写程序:for循环,建议分批,不要一把梭哈(可以用接口控制),要保证可控、幂等,注意线上环境和测试环境是有区别的导入1000w条,fori1000w(不能再main方法里面写,会报空指针异常,userMapper无法注入)缺点是.class并不是一个......
  • 编程日记 后端使用redis
    编程日记后端使用redis问题:在写伙伴匹配系统的时候,要使用redis存储数据,需要在xml文件中设置spring.session.tore-type=redis但是3.x版本的spring不再有这个参数。那么怎么设置是否使用redis存储呢?只要导入了org.springframework.session包那就启用,不导入就不启用https://www.......
  • 带你0到1之QT编程:十二、视图宝典,点通views的任督二脉
    此为QT编程的第十二谈!关注我,带你快速学习QT编程的学习路线!每一篇的技术点都是很很重要!很重要!很重要!但不冗余!我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点!码农不易,各位学者学到东西请点赞支持支持!开始部分:总:view视图组:QListView、QTreeView、TableView、QLi......
  • Day10.面向对象编程OOP(2)
    封装该露的露,该藏的藏高内聚,低耦合:高内聚:类的内部数据操作细节自己完成,不允许外部干涉低耦合:仅暴露少量的方法给外部使用提高程序的安全性,保护数据隐藏代码的实现细节统一接口提高系统的可维护性packagecom.dongfang.oop.Demo04;//类publicclassDemo01......
  • chapter08 面向对象编程高级 知识点总结Note
    文章目录static修饰符单例设计模式main()方法类的成员代码块实例变量赋值位置顺序final关键字abstract关键字使用抽象应用模板方法设计接口语法应用(多态匿名实现类)jdk8jdk9接口新特性类的成员内部类枚举类(自定义enum方法实现接口)注解常用注解与JUnit单元测试......
  • 过滤器(Filter)
    Filter概述概念:Filter过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截拦截下来,从而实现一些特殊的功能。过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等。Filter快速入门定义Filter:定义一个类,实......
  • windows C++ 并行编程-并行容器和对象
    并行模式库(PPL)包括几个容器和对象,这些容器和对象提供对其元素的线程安全访问。并发容器提供对最重要操作的并发安全访问。在这里,并发安全意味着指针或迭代器始终有效。它不保证元素初始化或特定的遍历顺序。这些容器的功能与C++标准库提供的功能类似。例如,concurren......
  • windows C++-并行编程-PPL任务并行(一)
    在并发运行时中,任务是执行特定作业并通常与其他任务并行运行的工作单元。任务可以分解为组织成任务组的其他更细化的任务。编写异步代码,并希望在异步操作完成之后进行某种操作时,可使用任务。例如,可以使用一个任务以异步方式从文件读取,然后使用另一个任务(延续任务,本文档稍后......
  • C#编程中的贪心策略:找零钱问题
    C#中的贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法并不保证总是能得到全局最优解,但它通常实现简单,且对于很多问题来说,其解是足够好的,或者可以证明贪心选择能导致全局最优解。下面是一个使......
  • 探索C#编程:高效解决N皇后问题的回溯算法实现
    在C#中,回溯算法是一种通过探索所有可能的候选解来找出所有解的算法。如果候选解被确认不是一个解(或者至少不是最后一个解),回溯算法会通过在上一步进行一些变化来撤销上一步或上几步的计算,以获得新的候选解。这个过程一直进行,直到找到所有解或确定无解。回溯算法常用于解决组......