对List集合属性进行模糊查找
模糊查询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对象集合进行模糊查找
- 使用下面的工具类
// 通过姓名模糊查找
list = FilterUtil.listFilter(// 判断name是否为空,空则不执行StringUtils.isNotEmpty(name),// 姓名name,// 待筛选数据集合list,User::getName);
- 工具类
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;}
}
- 测试
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集合属性进行模糊查找相关推荐
- MongoDB学习笔记~Update方法更新集合属性后的怪问题
回到目录 在对MongoDB进行封装后,对于Update更新对象里的集合属性时出现了一个现象,让人感到很恶心,人家更新前是个美丽的Array,但是更新之后集合对象变成了键值对,键是集合的类型名称,值是 ...
- hibernate映射集合属性
2019独角兽企业重金招聘Python工程师标准>>> hibernate映射集合属性通常需要指定一个name属性,用于标明该集合属性的名称: 除此之外,它还有如下可选属性: ta ...
- 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )
文章目录 I . Java 集合的线程安全概念 ( 加锁同步 ) II . 线程不安全集合 ( 没有并发需求 推荐使用 ) III . 集合属性说明 IV . 早期的线程安全集合 ( 不推荐使用 ) ...
- 7、单向一对多的关联关系(1的一方有n的一方的集合属性,n的一方却没有1的一方的引用)...
单向一对多的关联关系 具体体现:1的一方有n的一方的集合的引用,n的一方却没有1的一方的引用 举个例子:顾客Customer对订单Order是一个单向一对多的关联关系.Customer一方有对Orde ...
- Oracle 原理: 集合数组,集合属性,is table of 用法,bulk collect into,IS RECORD用法
数组分为固定长度数组和可变长度数组,都是集合,且数组的起始下标是从1开始的,这和其他高级程序语言不太一样.利用圆括号'(下标)'来获取值或者进行赋值. 一.固定长度的数组 固定长度的数组类型的声明 为 ...
- spring项目属性注入和bean管理xml 注入一般属性和集合属性
IOC 介绍: 在Spring的应用中,Spring IoC容器可以创建.装配和配置应用组件对象,这里的组件对象称为Bean. Bean的实例化 在面向对象编程中,想使用某个对象时,需要事先实例化该对 ...
- 使用jQuery异步传递含复杂属性及集合属性的Model到控制器方法
Student类有集合属性Courses,如何把Student连同集合属性Courses传递给控制器方法? public class Student { public stri ...
- java map 数组_java技术Spring集合属性
集合属性 在Spring中可以通过一组内置的XML标签来配置集合属性,例如:<list>,<set>或<map>. 1 数组和List 配置java.util.Li ...
- 组件开发之Asp.net服务器控件Collection[集合]属性的设计时支持--编辑、保存
制作服务器控件的时候,很多时候要用的集合属性(Collection Property),我将自己开发中学到的一些知识点总结一下,可能对初学控件开发的人会有些帮助. 如果你开发过控件,一定知道, ...
最新文章
- 取消打开命令行进入默认anaconda的环境
- ACM入门之【高精度】
- Java版SMS4加密算法
- 【NLP】文本预处理:删除单词停用词
- ubuntu apt-get install xxx命令,下载的路径及清除方式
- C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试
- Deep Glow for mac(AE高级辉光特效插件)支持ae2021
- Docker本地私有仓库的建立
- MyBatis-Plus自动填充功能填坑
- android怎么注释代码块,Android.mk 代码注释
- shell 获取ora报错信息_带你了解企业是如何编写脚本的-第2篇:Shell脚本规范
- android gif 处理,gifflen 调用以及错误处理
- Install Rouge and Pyrouge for python 2.7 (conda virtual env) on Linux 64
- 维特比算法(Viterbi Algorithm)
- VS MFC checkbox 控件默认选中
- pyautogui的两天坑moveto图像识别
- Python tkinter库之Canvas正方形旋转
- php论坛源代码,php论坛源代码下载
- 如何在一个月内高效地备考教师资格证?
- 通过MVC与MVP的对比,简述单一职责原则
热门文章
- 计算机提示存储空间不足怎么办,Win7软件提示"存储空间不足,无法处理此命令"怎么办...
- 图像分类之:经典机器学习 Battle 深度学习
- 手机的便签上如何设置纪念日和倒计时呢?
- PDF文件忘记了密码如何打开文件
- 这一周CSDN人都看了些什么?(5.14-5.20)
- I/Q数据频谱分析仪简介
- 一对一直播技术服务【推广】
- python中char是什么_python有char类型吗
- 2020年12月电子学会青少年软件编程Scratch(二级)等级考试真题解析
- js实现拼接一个以逗号隔开的字符串