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中进行模糊查询的实现方法全部内容了,希望大家多多支持脚本之家~

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

Mister.Pong

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值