Por ejemplo, tengo una lista como a continuación, que almacena múltiples objetos de empleados. Entonces quiero hacer una consulta difusa en esta lista de acuerdo con el nombre del objeto del empleado. ¿Hay alguna buena solución?
Por ejemplo, si la condición de consulta que ingresé es "Wang", entonces la lista de lista que contiene solo Empleado1 debe devolverse.
List List = new ArrayList (); Employee Employee1 = New Employee (); Empleado1.SetName ("Wangqiang"); Empleado1.Setage (30); List.Add (Empleado1); Empleado Empleado2 = nuevo Empleado (); Empleado2.SetName ("LISI"); LIST.Add (Empleado2); Empleado2.Setenga (25);Método 1:
Búsqueda de lista pública (nombre de cadena, lista de listas) {List Results = new ArrayList (); Pattern Pattern = Pattern.compile (nombre); for (int i = 0; i <list.size (); i ++) {matcher matcher = patrón.matcher (((empleado) list.get (i)). getName ()); if (matcher.matches ()) {results.add (list.get (i)); }} Resultados de retorno;}El anterior es sensible a la caja. Si se requiere el caso insensible, cámbielo a:
Pattern Pattern = Pattern.Compile (nombre, patrón.case_insensitive);
Y lo anterior es una consulta exacta. Si desea Fuzzy Match, Matcher.find () puede realizar partidos difusos.
Búsqueda de lista pública (nombre de cadena, lista de listas) {List Results = new ArrayList (); Pattern Pattern = Pattern.compile (nombre); for (int i = 0; i <list.size (); i ++) {matcher matcher = patrón.matcher (((empleado) list.get (i)). getName ()); if (matcher.find ()) {results.add (list.get (i)); }} Resultados de retorno;}Método 2:
Lista de lista de clases públicas {// Definir la clase de empleados Empleado de clase pública {private String Name; private int Age; public int getAge () {return Age;} public void setage (int a age) {this.age = age;} cadena public getName () {return name;} public void setname setName (name de cadena) {this.name = name;} public List List = New ArrayList (); nombre, int Age) {Employee Employee1 = New Employee (); empleado1.setName (nombre); empleado1.setage (edad); list.Add (Empleado1); Lista de retorno;} // show a todos los empleados public void showList () {for (int i = 0; i <list.size (); i ++) {system.out.println (((empleado) (list.get (i))). getName ()+""+((empleado) (list.get (i)). comparte) {for (int i = 0; i <list.size (); i ++) {if ((((((((i)) (ig))). ListElly (); ll.AddList ("Wuxiao", 13); ll.AddList ("Wangwang", 11); ll.addList ("Wanghua", 12); llL .addlist ("xiaowang", 13); ll.addlist ("xiaoxiao", 13); ll.likestring ("wang"); ll.showlist ();}}Lo anterior es todo el contenido del método de implementación de consulta difusa en la lista de Java que le ofrece el editor. Espero que todos apoyen a Wulin.com más ~