Par exemple, j'ai une liste comme ci-dessous, qui stocke plusieurs objets employés. Ensuite, je veux faire une requête floue sur cette liste en fonction du nom de l'objet employé. Y a-t-il une bonne solution?
Par exemple, si la condition de requête que j'ai saisie est "Wang", la liste de liste contenant uniquement un employé1 doit être renvoyée.
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);Méthode 1:
Public List Search (nom de chaîne, liste liste) {List Results = new ArrayList (); Modèle motif = motif.compile (nom); 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)); }} Retour Résultats;}Celui ci-dessus est sensible à la casse. Si le cas insensible est requis, changez-le en:
Pattern Match = Pattern.Compile (nom, Pattern.Case_insensitive);
Et ce qui précède est une requête exacte. Si vous voulez faire du match flou, Matcher.Find () peut effectuer des matchs flous.
Public List Search (nom de chaîne, liste liste) {List Results = new ArrayList (); Modèle motif = motif.compile (nom); 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)); }} Retour Résultats;}Méthode 2:
classe publique Listlily {// définir la classe des employés classe publique Employee {private String Name; private int Age; public int getage () {return age;} public void setage (int Age) {this.age = age;} public String getName () {return nom Nom, Int Age) {Employee Employee1 = New Employee (); employee1.setName (nom); Employee1.setage (âge); list.add (employee1); Return List;} // Afficher tous les employés publics void showList () {for (int i = 0; i <list.size (); i ++) {System.out.println (((employé) (list.get (i))). getName () + "" + ((employé) (list.get (i))). Getage ());}} // Fuzzy Public Public Public Public (Getage ());}} // Fuzzy Query Public Public Public Public (Getage ());}} // Fuzzy Public Public Public Public likename) {for (int i = 0; i <list.size (); i ++) {if ((((employee) (list.get (i))). getName (). indexof (lienName) <= - 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 ();}}Ce qui précède est tout le contenu de la méthode d'implémentation de la requête floue dans la liste Java que vous avez été que l'éditeur. J'espère que tout le monde soutiendra Wulin.com plus ~