模糊查询String类型的List

List<String> list = new ArrayList<>();
list.add("test");
list.add("testA");
list.add("fall");
List<String> result = list.stream().filter(item->item.contains("te")).collect(Collectors.toList());
System.out.println(result.toString());

对List对象集合进行模糊查找

  1. 使用下面的工具类
// 通过姓名模糊查找
list = FilterUtil.listFilter(// 判断name是否为空,空则不执行StringUtils.isNotEmpty(name),// 姓名name,// 待筛选数据集合list,User::getName);
  1. 工具类
import java.util.*;
import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** @description:* @author: evildoer* @datetime: 2021/3/2 11:31*/
public class FilterUtil{/*** @description: 模糊查找* @param condition 状态* @param target 筛选目标* @param list 数据集合* @param function 函数* @return: java.util.List<T>* @author: evildoer* @datetime: 2021/3/2 11:32*/public static <T> List<T> listFilter(boolean condition, String target, List<T> list, Function<T, ?> function) {List<T> result = null;if (condition) {result = listFilter(target, list, function);}// 不满足条件直接返回原数据集合return Optional.ofNullable(result).orElse(list);}public static <T> List<T> listFilter(String target, List<T> list, Function<T, ?> function) {List<T> result = new LinkedList<>();//该处决定大小写是否敏感Pattern pattern = Pattern.compile(target, Pattern.CASE_INSENSITIVE);for (T t : list) {Matcher matcher = pattern.matcher(function.apply(t).toString());if (matcher.find()) {result.add(t);}}return result;}
}
  1. 测试
import lombok.AllArgsConstructor;
import lombok.Data;
import org.apache.commons.lang.StringUtils;import java.util.ArrayList;
import java.util.List;@Data
@AllArgsConstructor
class User{private String name;private Integer age;
}public class Test {public static void main(String[] args) {// 通过用户姓名模糊查找String name = "张";List<User> list = new ArrayList<>();list.add(new User("张三", 18));list.add(new User("张叁", 18));list.add(new User("张山", 18));list.add(new User("李四", 19));list.add(new User("王五", 20));list = FilterUtil.listFilter(// 判断name是否为空,空则不执行StringUtils.isNotEmpty(name),name,list,User::getName);System.out.println(list.toString());}
}

对List集合属性进行模糊查找相关推荐

  1. MongoDB学习笔记~Update方法更新集合属性后的怪问题

    回到目录 在对MongoDB进行封装后,对于Update更新对象里的集合属性时出现了一个现象,让人感到很恶心,人家更新前是个美丽的Array,但是更新之后集合对象变成了键值对,键是集合的类型名称,值是 ...

  2. hibernate映射集合属性

    2019独角兽企业重金招聘Python工程师标准>>> hibernate映射集合属性通常需要指定一个name属性,用于标明该集合属性的名称: 除此之外,它还有如下可选属性:  ta ...

  3. 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )

    文章目录 I . Java 集合的线程安全概念 ( 加锁同步 ) II . 线程不安全集合 ( 没有并发需求 推荐使用 ) III . 集合属性说明 IV . 早期的线程安全集合 ( 不推荐使用 ) ...

  4. 7、单向一对多的关联关系(1的一方有n的一方的集合属性,n的一方却没有1的一方的引用)...

    单向一对多的关联关系 具体体现:1的一方有n的一方的集合的引用,n的一方却没有1的一方的引用 举个例子:顾客Customer对订单Order是一个单向一对多的关联关系.Customer一方有对Orde ...

  5. Oracle 原理: 集合数组,集合属性,is table of 用法,bulk collect into,IS RECORD用法

    数组分为固定长度数组和可变长度数组,都是集合,且数组的起始下标是从1开始的,这和其他高级程序语言不太一样.利用圆括号'(下标)'来获取值或者进行赋值. 一.固定长度的数组 固定长度的数组类型的声明 为 ...

  6. spring项目属性注入和bean管理xml 注入一般属性和集合属性

    IOC 介绍: 在Spring的应用中,Spring IoC容器可以创建.装配和配置应用组件对象,这里的组件对象称为Bean. Bean的实例化 在面向对象编程中,想使用某个对象时,需要事先实例化该对 ...

  7. 使用jQuery异步传递含复杂属性及集合属性的Model到控制器方法

    Student类有集合属性Courses,如何把Student连同集合属性Courses传递给控制器方法? public class Student     {         public stri ...

  8. java map 数组_java技术Spring集合属性

    集合属性 在Spring中可以通过一组内置的XML标签来配置集合属性,例如:<list>,<set>或<map>. 1 数组和List 配置java.util.Li ...

  9. 组件开发之Asp.net服务器控件Collection[集合]属性的设计时支持--编辑、保存

    制作服务器控件的时候,很多时候要用的集合属性(Collection Property),我将自己开发中学到的一些知识点总结一下,可能对初学控件开发的人会有些帮助.     如果你开发过控件,一定知道, ...

最新文章

  1. 取消打开命令行进入默认anaconda的环境
  2. ACM入门之【高精度】
  3. Java版SMS4加密算法
  4. 【NLP】文本预处理:删除单词停用词
  5. ubuntu apt-get install xxx命令,下载的路径及清除方式
  6. C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试
  7. Deep Glow for mac(AE高级辉光特效插件)支持ae2021
  8. Docker本地私有仓库的建立
  9. MyBatis-Plus自动填充功能填坑
  10. android怎么注释代码块,Android.mk 代码注释
  11. shell 获取ora报错信息_带你了解企业是如何编写脚本的-第2篇:Shell脚本规范
  12. android gif 处理,gifflen 调用以及错误处理
  13. Install Rouge and Pyrouge for python 2.7 (conda virtual env) on Linux 64
  14. 维特比算法(Viterbi Algorithm)
  15. VS MFC checkbox 控件默认选中
  16. pyautogui的两天坑moveto图像识别
  17. Python tkinter库之Canvas正方形旋转
  18. php论坛源代码,php论坛源代码下载
  19. 如何在一个月内高效地备考教师资格证?
  20. 通过MVC与MVP的对比,简述单一职责原则

热门文章

  1. 计算机提示存储空间不足怎么办,Win7软件提示"存储空间不足,无法处理此命令"怎么办...
  2. 图像分类之:经典机器学习 Battle 深度学习
  3. 手机的便签上如何设置纪念日和倒计时呢?
  4. PDF文件忘记了密码如何打开文件
  5. 这一周CSDN人都看了些什么?(5.14-5.20)
  6. I/Q数据频谱分析仪简介
  7. 一对一直播技术服务【推广】
  8. python中char是什么_python有char类型吗
  9. 2020年12月电子学会青少年软件编程Scratch(二级)等级考试真题解析
  10. js实现拼接一个以逗号隔开的字符串