Kata pengantar
Antarmuka daftar dalam paket java.util mewarisi antarmuka koleksi dan digunakan untuk menyimpan koleksi objek. Oleh karena itu, saat menyortir objek -objek ini, baik kelas objek dapat membandingkan objek yang sama itu sendiri, atau menggunakan pembanding untuk melakukan perbandingan dan penyortiran.
Kelas entitas siswa, termasuk atribut nama dan usia, diurutkan dalam urutan naik dalam nama saat membandingkan, dan jika namanya sama, itu diurutkan dalam urutan menaik dalam usia.
Tipe Pertama: Perbandingan Kelas Entitas Sendiri
public interface Comparable<T> public int compareTo(T o);
Kode contoh:
Siswa kelas publik mengimplementasikan yang sebanding dengan <spuelt> {name string pribadi; usia int pribadi; siswa publik () {super (); // TODO Stub Konstruktor yang Dihasilkan Otomatis} Siswa Publik (Nama String, Int Age) {Super (); this.name = name; this.age = usia; } public string getName () {return name; } public void setName (name string) {this.name = name; } public int getage () {usia kembali; } public void setage (int usia) {this.age = usia; } @Override public int compareto (Student o) {// TODO Metode yang dihasilkan secara otomatis stub int flag = this.name.compareto (o.name); if (flag == 0) {flag = this.age - o.age; } mengembalikan bendera; }} Kemudian gunakan metode sort(Comparator<? super E> c) dari kelas daftar atau sort(List<T> list) dari kelas alat java.util.Collections (sebenarnya, hanya ada satu kalimat di dalamnya: list.sort(null); ) untuk mengurutkan:
Daftar <spulhy> Siswa = ArrayList baru <Sidu- Student> (); student.add (siswa baru ("A", 10)); Student.Add (siswa baru ("B", 12)); student.add (siswa baru ("b", 11)); student.add (siswa baru ("ac", 20)); student.sort (null); //Collections.sort(students); hasil:
A 10 ac 20 b 11 b 12
Jenis kedua: Urutkan dengan bantuan pembanding.
Kode contoh:
siswa kelas publik {nama string pribadi; usia int pribadi; siswa publik () {super (); // TODO Stub Konstruktor yang Dihasilkan Otomatis} Siswa Publik (Nama String, Int Age) {Super (); this.name = name; this.age = usia; } public string getName () {return name; } public void setName (name string) {this.name = name; } public int getage () {usia kembali; } public void setage (int usia) {this.age = usia; }} Kelas pembanding java.util.Comparator adalah antarmuka ( public interface Comparator<T> ), yang berisi int compare(T o1, T o2); dan metode lainnya:
Pembanding kami ingin mengimplementasikan antarmuka ini dan mengimplementasikan metode compare :
Kelas Pribadi StudentComparator mengimplementasikan pembanding <Sahasiswa> {@Override Public int Compare (Student O1, Student O2) {// TODO METODE AUTO-AUTO-METODE PUTP STUT INT FLAG = O1.getName (). CompareTo (o2.getName ()); if (flag == 0) {flag = o1.getage () - o2.getage (); } mengembalikan bendera; }} Saat membandingkan, Anda dapat menggunakan metode sort(Comparator<? super E> c) dari daftar (atau metode Sort (List <T>, Komparator <? Super T> C) metode dari java.util.Collections Kelas alat untuk sort(List<T> list, Comparator<? super T> c) untuk mengurutkan.
Daftar <spulhy> Siswa = ArrayList baru <Sidu- Student> (); student.add (siswa baru ("A", 10)); Student.Add (siswa baru ("B", 12)); student.add (siswa baru ("b", 11)); student.add (siswa baru ("ac", 20)); Tes t = tes baru (); student.sort (t.new StudentComparator ()); //Collections.sort(students, t.new StudentComparator ()); untuk (siswa siswa: siswa) {System.out.println (student.getName ()+""+student.getage ()); } Hasilnya sama dengan metode pertama:
A 10 ac 20 b 11 b 12
Meringkaskan
Di atas adalah semua tentang daftar penyortiran di Java. Saya berharap konten artikel ini akan membantu untuk belajar atau bekerja semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi.