Pertanyaan ini memperkenalkan dua jenis () metode kelas alat koleksi, sebagai berikut:
1. Two Sort () Metode Kelas Alat Koleksi
Format 1: Publik statis <t memperluas sebanding <? Super t >> void sort (daftar <T> Daftar)
Catatan: Generik <T> dalam metode ini adalah semua subkelas dari antarmuka yang sebanding, yaitu, hanya data dari tipe subkelas antarmuka yang sebanding yang dapat dibandingkan dan diurutkan. Jika jenis data lain harus dibandingkan dan diurutkan, antarmuka yang sebanding harus diwariskan dan
Override equals () dan compareto () Metode. Di antara mereka, kelas string dan integer adalah subkelas antarmuka yang sebanding dan dapat diurutkan, sedangkan tipe dasar tidak dapat diurutkan. Item perbandingan ditentukan dalam kelas
Format 2: Public Static <T> void sort (Daftar <T> Daftar, Komparator <? Super T> C)
Catatan: Metode ini menentukan komparator metode perbandingan <? Super T> C, yaitu, C harus mengimplementasikan pembanding <? super t> antarmuka, angkanya metode compareTo () untuk menentukan item perbandingan. Item perbandingan ditentukan di luar kelas, yang lebih fleksibel
2. Contoh
Cara umum untuk mendapatkan string dan angka dalam contoh:
/ *** Hasilkan string acak dan non-resetitif: Nomor menghasilkan jumlah string*/ Daftar statis publik <string> generAteString (nomor int) {daftar <string> listString = ArrayList baru <> (); // Digunakan untuk menyimpan daftar nilai pengembalian <Integer> length = null; // string panjang stringBuffer sb = stringBuffer baru (); // variabel intermediate kontrol int = 0; // Kontrol Number String [] chars = string baru [] {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "", "n", "o", "p", "q", "r", "", "n", "o", "p", "q", "r", "" "," "" t " "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "", "", "N", "I", "J", "K", "" "," "", " "S", "t", "u", "v", "w", "x", "y", "z"}; while (true) {// end of control if (control == angka) {break; } // Hasilkan angka acak dan hasilkan 36-bit 2AAAB761-4341-4968-ACEB-3861EE3824B2 UUID Jenis data string uuid = uuid.randomuuid (). Tostring (). Ganti ("-" ""); SB.SetLength (0); // Dapatkan panjang string acak, panjangnya tidak 0 do {length = getDiffno (1, 11); } while (length.get (0) == 0); // tambalan string bersama untuk (int i = 0; i <panjang.get (0); i ++) {string str = uuid.substring (i*3, (i*3+3)); // Konversi string str ke hexadecimal dan dapatkan nilainya int x = integer.parseint (str, 16); // Dapatkan sisanya: x % 0x3e-0x3e = 3*16 + 14 = 62, di mana chars memiliki 62 karakter SB.Append (chars [x % 0x3e]); } listString.add (sb.toString ()); kontrol ++; } return listString; }/ *** Hasilkan nomor acak dan non-resetitif: n Menghasilkan angka Max menghasilkan rentang*/ Daftar statis publik <Integer> getDiffno (int n, int max) {// menghasilkan [0-n] Non-Number Acak // Daftar Non-Recetitive Daftar ini; Acak acak = acak baru (); Bilangan bulat k; untuk (int i = 0; i <n; i ++) {do {k = random.nextInt (max); } while (list.contains (k)); list.add (k); } daftar pengembalian; } 1. Urutkan daftar generik integer
/*** 1. Urutkan daftar generik integer melalui metode collections.sort (); * Create a List of Integer generics, insert ten non-repetitive random integers within 100, and call the Collections.sort() method to sort them* 2. Sort rules: first number and then letters, numbers 0-9, the order of letters AZ az*/ public void listIntegerSort() { // Insert ten non-repetitive random integers within 100 List<Integer> integerList = getDiffNo(10, 100); System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("Elemen:" + Integer); System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2. Urutkan daftar generik string
/*** 1. Urutkan daftar generik string; Buat daftar generik string, tambahkan elemen string out-of-order, * Panggil metode sortir, dan output urutan pengurutan lagi */ public void listStringsort () {list <string> new ArrayList <string> (); stringlist.add ("eipjlcx"); stringlist.add ("wvqrufc"); stringlist.add ("j"); stringlist.add ("hdau2g"); stringlist.add ("m0wswhd3"); System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- / *** Urutkan daftar generik string, membutuhkan pembuatan acak dari 10 string non-resetitif, dan panjang string berada dalam 10*/ public void listStringRandomsort () {// menghasilkan daftar string acak <string> listString = generAteString (10); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("-----------------------------------------------------");3. Sortir daftar generik lainnya
Implementasi Kelas Kursus
/** * Kelas Kursus * Administrator @Author * */Kursus Kelas Publik {ID Public String; nama string publik; Kursus Publik (ID String, Nama String) {this.id = id; this.name = name; } public course () {} @Override public int hashCode () {final int prime = 31; Hasil int = 1; result = prime * result + ((name == null)? 0: name.hashcode ()); hasil pengembalian; } @Override public boolean sama (objek obj) {if (this == obj) mengembalikan true; if (obj == null) mengembalikan false; if (! (Obj instance of course)) mengembalikan false; Kursus lain = (kursus) obj; if (name == null) {if (Other.name! = null) return false; } else if (! name.equals (Other.name)) return false; Kembali Benar; }} Kelas siswa mengimplementasikan antarmuka yang sebanding dan menetapkan item perbandingan dalam kelas
Impor java.util.hashset; import java.util.set;/** * kelas siswa * @author administrator * */kelas publik mengimplementasikan yang sebanding dengan <Sahasiswa> {ID public string; nama string publik; Kursus Public Set <side>; siswa publik (ID string, nama string) {this.id = id; this.name = name; this.courses = hashset baru <side> (); } @Override public int hashCode () {final int prime = 31; Hasil int = 1; result = prime * result + ((name == null)? 0: name.hashcode ()); hasil pengembalian; } @Override public boolean sama (objek obj) {if (this == obj) mengembalikan true; if (obj == null) mengembalikan false; if (! (Obj instance dari siswa)) mengembalikan false; Siswa lain = (siswa) obj; if (name == null) {if (Other.name! = null) return false; } else if (! name.equals (Other.name)) return false; Kembali Benar; } @Override public int compareto (Student o) {// Set ID sebagai item perbandingan // TODO METODE AUTO-DIHOMPOLED Stub Return this.id.id.idpareto (o.id); }} Menerapkan antarmuka pembanding dan mengatur item perbandingan di luar kelas
Impor java.util.comParkaror; kelas publik StudentComparator mengimplementasikan pembanding <Sahasiswa> {@override Public int Compare (Student O1, Student O2) {// TODO METODE AUTO-AUTO-Stub Pengembalian O1.name.compareto (o2.name); }} Membandingkan kelas siswa
/*** Sortir daftar generik lainnya, menganggap siswa sebagai contoh. */ public void listComparatororSort () {list <sharaent> studentList = new ArrayList <Shuents> (); Daftar <Integer> Daftar = getDiffno (4, 1000); studentlist.add (siswa baru (list.get (0) + "", "mike")); StudentList.Add (siswa baru (List.get (1) + "", "Angela")); studentlist.add (siswa baru (list.get (2) + "", "lucy")); studentlist.add (siswa baru (1000 + "", "beyonce")); System.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("Siswa:" + Student.id + ":" + Student.name); System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.