java list 查找find_在java List中进行模糊查询的实现方法

下面小编就为大家带来一篇在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

System.out.println(((Employee)(list.get(i))).getName()+" "+((Employee)(list.get(i))).getAge());

}

}

//模糊查询

public List likeString(String likename){

for(int i=0;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();

}

}

以上就是小编为大家带来的在java List中进行模糊查询的实现方法全部内容了,希望大家多多支持脚本之家~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值