Contoh artikel ini memberi tahu metode umum objek daftar di Java. Bagikan untuk semua orang untuk referensi Anda. Analisis spesifiknya adalah sebagai berikut:
Dalam daftar yang terdeteksi dalam database, bidang yang berbeda sering diurutkan. Jika tidak menanyakan dalam database, menyortir langsung dalam daftar yang ditemukan pertama kali tidak diragukan lagi akan meningkatkan kinerja sistem.
Selama hasil yang terdeteksi pertama disimpan dalam sesi, Anda dapat mengurutkan daftar. Secara umum, penyortiran daftar dapat digunakan dalam collections.sort (daftar), tetapi jika daftar berisi objek, metode ini masih belum memungkinkan. Jadi bagaimana Anda mengatasinya? Jika ada objek UserInfo, itu berisi bidang berikut:
Private Java.lang.integer Userid;
Jadi sekarang Anda perlu mengurutkan UserID, Anda dapat menggunakan metode berikut:
Collections.sort (daftar, pembanding baru () {public int perbandingan (objek A, objek b) {int satu = ((order) a) .getUserId (); int two = (order) b) .getUserId (); Kembalikan satu-dua;}});
Dengan cara ini, jika Anda ingin mengurutkan setiap bidang daftar UserInfo, apakah itu ditulis oleh segmen seperti yang ditunjukkan di atas di setiap bidang? Itu bukan hasil yang kita butuhkan. Menulis program semakin halus, dan Anda tidak dapat menulis lebih banyak dan lebih berlebihan. Bisakah Anda menulis metode umum? Jawabannya adalah ya, tetapi pertama -tama, kita harus menyelesaikan tiga pertanyaan berikut:
1. Dapat menggunakan tipe generik;
2. Menjadi metode perbandingan yang umum, seperti Compareto;
3. Apakah ada metode pan -jalan seperti metode generik dan generik?
Masalah pertama dapat diselesaikan. Masalah ketiga tidak memiliki metode pan -way yang kita butuhkan. Tetapi dapatkah kita mengubahnya dan menggunakan metode getMethod dan memohon untuk mengambil metode secara dinamis. Kodenya adalah sebagai berikut:
Public Class SortList <E> {public void sort (Daftar <E> Daftar, Metode String Akhir, Urutan String Akhir) {Collections.sort (Daftar, pembanding baru () {Public int Compare (O. BKY A, Objek B) { int ret = 0; sama dengan (sort) // terbalik (((((((e) b), null) .tring (). compareTo ((((e) a), null) .tring ()); else // ret urutan positif ret positif = m1.invoke ((((e) a), null) .tring (). compareto (m2.invoke ((e) b), null) .tring ();} catch (nosuchmethodException ne) {System.out. println (ne);} catch (IllegalAccessException IE) {System.out.println (IE);
Melihat kode di atas, apakah kami berhasil memecahkan tiga masalah di atas dan menambahkan urutan naik -turun. Tidak ada objek dan tipe spesifik dalam kode, dan sudah serba guna. : misalnya, "misalnya" getUserid ". Anda dapat menggunakan kode yang disediakan di bawah ini untuk menguji:
//Test.javaPackage Tes; = ArrayList baru <serusinfo> (); 11)); out.println ("------- Urutan asli ----------------------------------- ----------------------- "" ""); } // Hubungi SortList kelas universal <serusinfo> sortlist = new sortList <UserInfo> (); ---------------------------------------- "); for (UserInfo User: Daftar) {System.out.println (user.toString ());} // tekan username sortList.sort (daftar, "getUsername", null); -------------------------------------------------- -------------------------------------------------- --- "););} // sortlist.sort (daftar," getBithDateStr ", null); System.out.println (" ------------------- ------------- -------------------------- "); for (userInfo user: list) { System.out.println (user.toString ());}}}
Hasil tes adalah sebagai berikut:
------- Urutan Asli ----------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------------------- 10-01; 3; ------ 2; -------------------------------------------------- -------------------------------------------------- --------------------------- -------- 2; -01;
Catatan: Penyortiran tanggal pertama kali diubah oleh format, jika tidak, tidak akan ada hasil yang benar.
Diharapkan bahwa artikel ini bermanfaat untuk desain program Java semua orang.