java中实现对list的模糊查询
比如我有下面这样一个List,里面存放的是多个Employee对象。然后我想对这个List进行按照Employee对象的名字进行模糊查询。有什么好的解决方案么?
比如我输入的查询条件为“wang”,那么应该返回只包含employee1的List列表。
List list = new ArrayList(); Employee employee1 = new Employee(); employee1.setName("wangqiang"); employee1.setAge(30); list.add(employee1); Employee employee2 = new Employee(); employee2.setName("lisi"); list.add(employee2); employee2.setAge(25);
方式一:
public List search(String name,List list){List results = new ArrayList();Pattern pattern = Pattern.compile(name);for(int i=0; i < list.size(); i++){Matcher matcher = pattern.matcher(((Employee)list.get(i)).getName());if(matcher.matches()){results.add(list.get(i));}}return results;
}
上面那个是大小写敏感的,如果要求大小写不敏感,改成:
Pattern pattern = Pattern.compile(name,Pattern.CASE_INSENSITIVE);
并且上面那个是精确查询,如果要模糊匹配,matcher.find()即可以进行模糊匹配。
public List search(String name,List list){List results = new ArrayList();Pattern pattern = Pattern.compile(name);for(int i=0; i < list.size(); i++){Matcher matcher = pattern.matcher(((Employee)list.get(i)).getName());if(matcher.find()){results.add(list.get(i));}}return results;
}
方式二:
public class ListLike {//定义员工类
public class Employee {
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}public List list=new ArrayList();//增加员工
public List addList(String name,int age){
Employee employee1 = new Employee();
employee1.setName(name);
employee1.setAge(age);
list.add(employee1);
return list;
}//显示所有员工
public void ShowList(){
for(int i=0;i<list.size();i++){
System.out.println(((Employee)(list.get(i))).getName()+" "+((Employee)(list.get(i))).getAge());
}
}//模糊查询
public List likeString(String likename){
for(int i=0;i<list.size();i++){
if(((Employee)(list.get(i))).getName().indexOf(likename)<=-1)
list.remove(i);
}
return list;}public static void main(String arg[]){
ListLike ll=new ListLike();
ll.addList("wuxiao",13);
ll.addList("wangwang",11);
ll.addList("wanghua",12);
ll.addList("xiaowang",13);
ll.addList("xiaoxiao",13);ll.likeString("wang");
ll.ShowList();}}
转载于:https://www.cnblogs.com/1925yiyi/p/8078890.html
java中实现对list的模糊查询相关推荐
- java如何解压rar文件怎么打开_如何在java中实现对zip和rar文件的解压
如何在java中实现对zip和rar文件的解压 关注:101 答案:1 mip版 解决时间 2021-01-26 10:50 提问者芣①樣哋羙莮 2021-01-25 22:44 如何在java中 ...
- 朝花夕拾:Java中实现对EXCEL文件的读取
在项目中实现读取EXCEL文件中的数据是实现工作项目中数据读取的常用方式.这个对于之前无论写C/C++还是后来写Java来读取txt数据的我来说都是一个新的方式.新的技巧,相信对刚入手的很多小伙伴都是 ...
- java中多条件与不定条件查询
java中多条件与不定条件查询 网站或各类管理系统都会用到搜索,会用到一个或多个不确定条件搜索,单条件搜索比较简单,有时候会有多个条件共同查询,如果系统中已经提供了相关的方法供你使用最好,像我做这老系 ...
- 通过java代码实现对json字符串的格式美化(完整版)
一.前言 之前转载过一篇文章,也是有关于通过java代码实现对json字符串的格式美化,但是那篇文章的实现还不够完善,比如其对字符串中出现特殊字符时,会出现转换失败.因此博主本人也是闲暇时在那份代码的 ...
- 在应用程序中实现对NandFlash的操作
以TC58NVG2S3ETA00 为例: 下面是它的一些物理参数: 图一 图二 图三 图四 图五 图6-0 图6-1 说明一下,在图6-1中中间的那个布局表可以看做是实际的NandFlash一页数据的 ...
- 在JDBC中实现SQL语句的模糊查询
在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * ...
- php播放器隐藏播放地址,window_ASP中实现对MediaPlayer控件播放文件地址隐藏的解决方案,在播放视频时,直接查看页面 - phpStudy...
ASP中实现对MediaPlayer控件播放文件地址隐藏的解决方案 在播放视频时,直接查看页面源文件可看到视频文件地址,MediaPlayer控件播放器将在页面上加上如下初始化语句: MediaPla ...
- python中的mysql数据库like模糊查询
近期工作在使用python语言开发项目,工作中遇到了一个python连接mysql的like查询. 因为%在python中三个特殊的符号,如%s.%d分别代表了字符串占位符和数字占位符. 大家知道.m ...
- mongotemplate模糊查_java 中 mongodb的各种操作 模糊查询 精确查询 等等
本意是想查查mongo数据库的int类型的like怎么查,但是好像没 解决这个问题. 精确查询:模糊查询:分页查询,每页多少:按某个字段排序(或升或降):查询数量:大于,小于,等于:且,或,某个字段不 ...
最新文章
- MUI框架 APP手机退出方式
- pymysql操作mysql数据库
- python的使用说明_Python 的基本使用说明
- new blob文件设置编码_前端下载文件amp;下载进度
- Java语言速览:StackOverflow
- Excel word PDF导入导出 Easy POI
- redis 验证订单_php+redis消息队列实现抢购功能
- java删除文件和文件夹
- 用python实现网上书店
- 手机端显示电脑端隐藏html源码,div+css实现电脑端显示手机端隐藏代码
- 把rmvb格式转化为avi格式
- 【PTA|Python】浙大版《Python 程序设计》题目集:函数练习
- java话费充值代码_话费充值接口示例代码
- php fopen 追加,PHP文件写入或追加
- OL3中结合Jquery UI实现图层拖动并改变图层顺序
- 网络安全框架知多少?
- 朝鲜打造尖端技术开发区 欲将开城变“硅谷”
- 小播本地音乐功能指引
- twitter如何以图搜图_没有完整图时,如何使用图深度学习?你需要了解流形学习2.0版本...
- C++线程学习4,多线程通信和同步