比如我有下面这样一个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的模糊查询相关推荐

  1. java如何解压rar文件怎么打开_如何在java中实现对zip和rar文件的解压

    如何在java中实现对zip和rar文件的解压 关注:101  答案:1  mip版 解决时间 2021-01-26 10:50 提问者芣①樣哋羙莮 2021-01-25 22:44 如何在java中 ...

  2. 朝花夕拾:Java中实现对EXCEL文件的读取

    在项目中实现读取EXCEL文件中的数据是实现工作项目中数据读取的常用方式.这个对于之前无论写C/C++还是后来写Java来读取txt数据的我来说都是一个新的方式.新的技巧,相信对刚入手的很多小伙伴都是 ...

  3. java中多条件与不定条件查询

    java中多条件与不定条件查询 网站或各类管理系统都会用到搜索,会用到一个或多个不确定条件搜索,单条件搜索比较简单,有时候会有多个条件共同查询,如果系统中已经提供了相关的方法供你使用最好,像我做这老系 ...

  4. 通过java代码实现对json字符串的格式美化(完整版)

    一.前言 之前转载过一篇文章,也是有关于通过java代码实现对json字符串的格式美化,但是那篇文章的实现还不够完善,比如其对字符串中出现特殊字符时,会出现转换失败.因此博主本人也是闲暇时在那份代码的 ...

  5. 在应用程序中实现对NandFlash的操作

    以TC58NVG2S3ETA00 为例: 下面是它的一些物理参数: 图一 图二 图三 图四 图五 图6-0 图6-1 说明一下,在图6-1中中间的那个布局表可以看做是实际的NandFlash一页数据的 ...

  6. 在JDBC中实现SQL语句的模糊查询

    在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * ...

  7. php播放器隐藏播放地址,window_ASP中实现对MediaPlayer控件播放文件地址隐藏的解决方案,在播放视频时,直接查看页面 - phpStudy...

    ASP中实现对MediaPlayer控件播放文件地址隐藏的解决方案 在播放视频时,直接查看页面源文件可看到视频文件地址,MediaPlayer控件播放器将在页面上加上如下初始化语句: MediaPla ...

  8. python中的mysql数据库like模糊查询

    近期工作在使用python语言开发项目,工作中遇到了一个python连接mysql的like查询. 因为%在python中三个特殊的符号,如%s.%d分别代表了字符串占位符和数字占位符. 大家知道.m ...

  9. mongotemplate模糊查_java 中 mongodb的各种操作 模糊查询 精确查询 等等

    本意是想查查mongo数据库的int类型的like怎么查,但是好像没 解决这个问题. 精确查询:模糊查询:分页查询,每页多少:按某个字段排序(或升或降):查询数量:大于,小于,等于:且,或,某个字段不 ...

最新文章

  1. MUI框架 APP手机退出方式
  2. pymysql操作mysql数据库
  3. python的使用说明_Python 的基本使用说明
  4. new blob文件设置编码_前端下载文件amp;下载进度
  5. Java语言速览:StackOverflow
  6. Excel word PDF导入导出 Easy POI
  7. redis 验证订单_php+redis消息队列实现抢购功能
  8. java删除文件和文件夹
  9. 用python实现网上书店
  10. 手机端显示电脑端隐藏html源码,div+css实现电脑端显示手机端隐藏代码
  11. 把rmvb格式转化为avi格式
  12. 【PTA|Python】浙大版《Python 程序设计》题目集:函数练习
  13. java话费充值代码_话费充值接口示例代码
  14. php fopen 追加,PHP文件写入或追加
  15. OL3中结合Jquery UI实现图层拖动并改变图层顺序
  16. 网络安全框架知多少?
  17. 朝鲜打造尖端技术开发区 欲将开城变“硅谷”
  18. 小播本地音乐功能指引
  19. twitter如何以图搜图_没有完整图时,如何使用图深度学习?你需要了解流形学习2.0版本...
  20. C++线程学习4,多线程通信和同步

热门文章

  1. 作为Leader如何与团队成员更好地沟通?
  2. UA OPTI512R 傅立叶光学导论12 傅立叶级数基础
  3. UA MATH567 高维统计专题1 稀疏信号及其恢复4 Basis Pursuit的算法 Projected Gradient Descent
  4. ArcGIS桌面基本操作 和 ArcSDE数据库基本概念
  5. cesium首次加载gltf模型成功
  6. linux内核锁机制学习
  7. VS可视化调试学习总结
  8. 国外开源网站网页翻译
  9. 实现instanceof关键字
  10. POJ 2075 Tangled in Cables