Misalnya, saya memiliki daftar seperti di bawah ini, yang menyimpan beberapa objek karyawan. Kemudian saya ingin melakukan kueri fuzzy pada daftar ini sesuai dengan nama objek karyawan. Apakah ada solusi yang bagus?
Misalnya, jika kondisi kueri yang saya masukkan adalah "Wang", maka daftar daftar yang hanya berisi karyawan1 yang harus dikembalikan.
Daftar Daftar = ArrayList baru (); Karyawan Karyawan = Karyawan Baru (); karyawan1.setname ("Wangqiang"); karyawan 1.setage (30); list.add (karyawan); karyawan karyawan (karyawan baru (); karyawan ("lisi"); list.add (karyawan); karyawan.Metode 1:
pencarian daftar publik (nama string, daftar daftar) {daftar hasil = arraylist baru (); Pola pola = pola.compile (name); untuk (int i = 0; i <list.size (); i ++) {pencocokan matcher = pola.matcher ((((karyawan) list.get (i)). getName ()); if (matcher.matches ()) {results.add (list.get (i)); }} mengembalikan hasil;}Yang di atas adalah case sensitif. Jika case tidak sensitif, ubah menjadi:
Pola pola = pola.compile (name, pattern.case_insensitive);
Dan di atas adalah kueri yang tepat. Jika Anda ingin mencocokkan fuzzy, Matcher.find () dapat melakukan pertandingan fuzzy.
pencarian daftar publik (nama string, daftar daftar) {daftar hasil = arraylist baru (); Pola pola = pola.compile (name); untuk (int i = 0; i <list.size (); i ++) {pencocokan matcher = pola.matcher ((((karyawan) list.get (i)). getName ()); if (matcher.find ()) {results.add (list.get (i)); }} mengembalikan hasil;}Metode 2:
Kelas publik List list {// Tentukan kelas karyawan kelas publik karyawan {nama string pribadi; private int usia; public int getage () {return use;} public void setage (int usia) {this.age = usia;} public string getName () {return name;} public void setName (string name) {this.nname name;)} name; addlist (nama string, int usia) {karyawan karyawan 1 = karyawan baru (); karyawan1.setname (nama); karyawan1.setage (usia); list.add (karyawan); daftar pengembalian;} // tunjukkan semua karyawan public void showlist () {for (int i = 0; i <list.size (); i ++) {System.out.println (((karyawan) (list.get (i)). getName ()+""+(karyawan) (list. LikeName) {for (int i = 0; i <list.size (); i ++) {if ((((karyawan) (list.get (i))). getName (). indexOf (likeName) <=-1) list.remove (i);} list return;} public static void main (string arg arg []) {i); List like (); 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 ();}}Di atas adalah semua konten dari metode implementasi kueri fuzzy dalam daftar java yang dibawa kepada Anda oleh editor. Saya harap semua orang akan mendukung wulin.com lebih banyak ~