Например, у меня есть список, подобный ниже, в котором хранится несколько объектов сотрудников. Тогда я хочу сделать нечеткий запрос в этом списке в соответствии с именем объекта сотрудника. Есть ли хорошее решение?
Например, если условие запроса, которое я ввел, является «Ван», то список списков, содержащий только сотрудника1, должен быть возвращен.
Список списка = new ArrayList (); сотрудник работника1 = новый сотрудник (); employee1.setname ("wangqiang"); employee1.setage (30); list.add (employtee1); работник -работник 2 = новый работник (); employee2.setname ("lisi"); list.addeee2);Метод 1:
Общественный список поиска (имя строки, список списка) {list results = new ArrayList (); Шаблон шаблона = pattern.compile (имя); for (int i = 0; i <list.size (); i ++) {matchter matcher = pattern.matcher (((сотрудник) list.get (i)). getName ()); if (matcher.matches ()) {results.add (list.get (i)); }} return Results;}Вышеупомянутый чувствителен к корпусу. Если требуется нечувствительное дело, измените его на:
Шаблон = pattern.compile (name, pattern.case_insensity);
И вышеупомянутое - точный запрос. Если вы хотите нечеткого совпадения, Matcher.find () может выполнять нечеткие совпадения.
Общественный список поиска (имя строки, список списка) {list results = new ArrayList (); Шаблон шаблона = pattern.compile (имя); for (int i = 0; i <list.size (); i ++) {matchter matcher = pattern.matcher (((сотрудник) list.get (i)). getName ()); if (matcher.find ()) {results.add (list.get (i)); }} return Results;}Метод 2:
Открытый список классов, похожий на {// defination class class class class {in public void setage (int age) {this.age = age;} public String getName () {return name;} public void setNam Имя, int age) {employtee employtee1 = new Employee (); employee1.setname (имя); employee1.setage (возраст); list.add (employtee1); return List;} // Показать все сотрудники public void showlist () {for (int i = 0; i <list.size (); i ++) {System.out.println (((Сотрудник) (list.get (i))). getName ()+""+((сотрудник) (list.get (i)). Подобная) {for (int i = 0; i <list.size (); i ++) {if ((((employtee) (list.get (i))). getName (). indexof (waneEname) <=-1) list.remove (i);} return List;} public Static void main (string arg []) {listfia ll ll Listliks (); ll.addlist ("wuxiao", 13); ll.addlist ("wangwang", 11); ll.addlist ("wanghua", 12); ll .AddList ("xiaowang", 13); ll.addlist ("xioxiao", 13); ll.likestring ("wang"); ll.showlist ();}}Выше приведено все содержание метода реализации нечеткого запроса в списке Java, доставленных вам редактором. Я надеюсь, что все будут поддерживать wulin.com больше ~