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

网友投稿 413 2023-06-29


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

比如我有下面这样一个List,里面存放的是多个Employee对象。然后我想对这个List进行按照Employee对象的名字进行模糊查询。有什么好的解决方案http://么?

比如我输入的查询条件为“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 paximFWttern = Pattern.compile(name);

for(int i=0; i < list.size(); i+ximFW+){

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));

}

http:// }

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();

}

}

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();

}

}

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();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 出现问题javax.servlet.http.HttpServlet was not found解决方法
下一篇:Java中的break和continue关键字的使用方法总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~