如何在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()即可以進行模糊匹配

復制代碼

上面那個是大小寫敏感的,如果要求大小寫不敏感,改成:
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;
}
復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM