Contoh 1
Salinan kode adalah sebagai berikut:
paket com.yonyou.test;
impor java.util.arraylist;
impor java.util.collections;
impor java.util.comparator;
impor java.util.list;
tes kelas publik {
public static void main (string [] args) {
Siswa ZLJ = Siswa Baru ("Ding Xiaoyu", 21);
Siswa DXY = Siswa Baru ("Zhao Si", 22);
Siswa CJC = Siswa Baru ("Zhang San", 11);
Siswa LGC = Siswa Baru ("Liu Wu", 19);
Daftar <Sahasiswa> StudentList = NEW ARRAYLIST <STAHISAN> ();
StudentList.Add (ZLJ);
StudentList.Add (DXY);
StudentList.Add (CJC);
StudentList.Add (LGC);
System.out.println ("Diurutkan berdasarkan tahun:");
Collections.sort (studentlist, new sortbyage ());
untuk (siswa siswa: siswa) {
System.out.println (student.getName () + " /" + student.getage ());
}
System.out.println ("===========");
System.out.println ("Diurutkan berdasarkan Nama");
Collections.sort (studentlist, new sortbyname ());
untuk (siswa siswa: siswa) {
System.out.println (student.getName () + " /" + student.getage ());
}
}
}
Class SortsByage mengimplementasikan pembanding {
Public int Compare (Object O1, Object O2) {
Siswa S1 = (Siswa) O1;
Siswa S2 = (Siswa) O2;
if (s1.getage ()> s2.getage ())
kembali 1;
lain if (s1.getage () == s2.getage ()) {
kembali 0;
}
kembali -1;
}
}
kelas sortbyname mengimplementasikan pembanding {
Public int Compare (Object O1, Object O2) {
Siswa S1 = (Siswa) O1;
Siswa S2 = (Siswa) O2;
if (s1.getname (). compareTo (s2.getname ()) <0)
kembali -1;
lain if (s1.getName (). compareTo (s2.getname ())> 0) {
kembali 1;
}
kembali 0;
}
}
siswa kelas {
usia int pribadi;
nama string pribadi;
publik int getage () {
usia kembali;
}
public void setage (int usia) {
this.age = usia;
}
Public String getName () {
nama pengembalian;
}
public void setName (nama string) {
this.name = name;
}
siswa publik (nama string, usia int) {
this.age = usia;
this.name = name;
}
}
Contoh 2
Saya sering mengalami masalah dengan penyortiran array.
Bahkan, situasi ini sering ditemui.
Kode sumber diberikan di bawah ini:
1: File Person.java:
Salinan kode adalah sebagai berikut:
orang kelas publik {
Nama string;
usia int;
orang publik (nama string, usia int) {
this.name = name;
this.age = usia;
}
publik int getage () {
usia kembali;
}
public void setage (int usia) {
this.age = usia;
}
Public String getName () {
nama pengembalian;
}
public void setName (nama string) {
this.name = name;
}
}
2: myComparator.java
Salinan kode adalah sebagai berikut:
// Menerapkan antarmuka pembanding, yaitu, tentukan aturan penyortiran, Anda dapat menentukan hampir semua aturan
paket com.infoearth;
impor java.util.*;
MyComparator kelas publik mengimplementasikan pembanding {
Public int Compare (Object O1, Object O2) {
Orang p1 = (orang) o1;
Orang p2 = (orang) o2;
if (p1.age <p2.age)
kembali 1;
kalau tidak
kembali 0;
}
}
3: Listsort.java
Salinan kode adalah sebagai berikut:
paket com.infoearth;
impor java.util.arraylist;
impor java.util.collections;
impor java.util.comparator;
ListSort kelas publik {
public static void main (string [] args) {
Daftar ArrayList = ArrayList baru ();
list.add (orang baru ("lcl", 28));
list.add (orang baru ("fx", 23));
list.add (orang baru ("WQX", 29));
Pembanding comp = myComparator baru ();
Collections.sort (daftar, comp);
untuk (int i = 0; i <list.size (); i ++) {
Orang p = (orang) list.get (i);
System.out.println (p.getName ());
}
}
}
Tentu saja, jika daftar Anda dibungkus dengan tipe dasar atau string, hanya collections.sort (daftar);