Por exemplo, eu tenho uma lista como abaixo, que armazena vários objetos de funcionários. Então eu quero fazer uma consulta difusa nesta lista de acordo com o nome do objeto do funcionário. Existe alguma boa solução?
Por exemplo, se a condição de consulta que eu digitei for "wang", a lista de lista que contém apenas o funcionário1 deve ser retornada.
Lista Lista = new ArrayList (); Employeee1 = New Funcionário (); Employee1.SetName ("Wangqiang"); Employee1.setage (30); list.add (Employee1); Employeee2 = New Funcionário (); Funcionário2.SetName ("Lisi"); List.add (Employee2); Funcionário;Método 1:
Pesquisa de lista pública (nome da string, lista de lista) {Resultados da lista = new ArrayList (); Padrão padrão = padrão.compile (nome); for (int i = 0; i <list.size (); i ++) {Matcher Matcher = Pattern.Matcher ((((funcionário) list.get (i)). getName ()); if (matcher.matches ()) {results.add (list.get (i)); }} retornar resultados;}O acima é sensível ao minúsculo. Se for necessário o caso insensível, altere -o para:
Padrão padrão = padrão.compile (nome, padrão.case_insensitive);
E o acima é uma consulta exata. Se você deseja combinar confuso, o Matcher.find () pode executar correspondências difusas.
Pesquisa de lista pública (nome da string, lista de lista) {Resultados da lista = new ArrayList (); Padrão padrão = padrão.compile (nome); for (int i = 0; i <list.size (); i ++) {Matcher Matcher = Pattern.Matcher ((((funcionário) list.get (i)). getName ()); if (matcher.find ()) {Results.add (list.get (i)); }} retornar resultados;}Método 2:
public class Listlike {// Definir classe de funcionário classe pública funcionário {nomes de sequência privada; private int age; public int getage () {retorna idade;} public void setage (int Age) {this.age = AGE;} public string getName () {Nome de retorno;} public listname (string name) {this.Name = Name;}}}; Nome, Int Age) {funcionário do funcionário1 = new Funcionário (); funcionário1.setName (nome); funcionário1.setage (idade); list.add (funcionário1); Lista de retorno;} // mostra todos os funcionários public void showList () {for (int i = 0; i <list.size (); i ++) {System.out.println (((funcionário) (list.get (i)). comparação) {for (int i = 0; i <list.size (); i ++) {if ((((funcionário) (list.get (i))). getName (). Listlike (); ll.addlist ("wuxiao", 13); ll.addlist ("wangwang", 11); ll.addlist ("wanghua", 12); ll .Addlist ("Xiaowang", 13); ll.Adlist ("Xiaoxiao", 13); ll.likestring ("Wang"); ll.Showlist ();}}}}O exposto acima é todo o conteúdo do método de implementação da consulta difusa na lista Java trazida a você pelo editor. Espero que todos apoiem mais wulin.com ~