当前位置:   article > 正文

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/1022332
推荐阅读
相关标签
  

闽ICP备14008679号