Ejemplo 1
La copia del código es la siguiente:
paquete com.yonyou.test;
import java.util.arrayList;
import java.util.collections;
importar java.util.comparator;
import java.util.list;
Prueba de clase pública {
public static void main (string [] args) {
Estudiante ZLJ = nuevo estudiante ("Ding Xiaoyu", 21);
Estudiante dxy = nuevo estudiante ("zhao si", 22);
Estudiante CJC = nuevo estudiante ("Zhang San", 11);
Estudiante LGC = nuevo estudiante ("Liu Wu", 19);
Lista <deudante> studentList = new ArrayList <Sentuent> ();
StudentList.Add (ZLJ);
StudentList.Add (DXY);
StudentList.Add (CJC);
StudentList.Add (LGC);
System.out.println ("Ordenado por año:");
Colección.sort (StudentList, nueva sortByage ());
para (estudiante estudiantil: studentlist) {
System.out.println (student.getName () + " /" + student.getage ());
}
System.out.println ("==========");
System.out.println ("Ordenado por nombre");
Colección.sort (StudentList, New SortByName ());
para (estudiante estudiantil: studentlist) {
System.out.println (student.getName () + " /" + student.getage ());
}
}
}
Comparador de implementos de clasificación de clases {
public int Compare (Object O1, Object O2) {
Estudiante S1 = (Estudiante) O1;
Estudiante S2 = (Estudiante) O2;
if (s1.getage ()> s2.getage ())
regresar 1;
else if (s1.getage () == s2.getage ()) {
regresar 0;
}
regreso -1;
}
}
class sortByName implementa comparador {
public int Compare (Object O1, Object O2) {
Estudiante S1 = (Estudiante) O1;
Estudiante S2 = (Estudiante) O2;
if (s1.getName (). Compareto (s2.getName ()) <0)
regreso -1;
else if (s1.getName (). Compareto (S2.getName ())> 0) {
regresar 1;
}
regresar 0;
}
}
Estudiante de clase {
edad privada int;
nombre de cadena privada;
public int getage () {
edad de retorno;
}
Public void setage (int a age) {
this.age = edad;
}
public String getName () {
nombre de retorno;
}
public void setName (nombre de cadena) {
this.name = name;
}
Estudiante público (nombre de cadena, int Age) {
this.age = edad;
this.name = name;
}
}
Ejemplo 2
A menudo encuentro problemas con la clasificación de la matriz.
De hecho, esta situación a menudo se encuentra.
El código fuente se proporciona a continuación:
1: archivo de personas. Java:
La copia del código es la siguiente:
persona de clase pública {
Nombre de cadena;
int Age;
Persona pública (nombre de cadena, int Age) {
this.name = name;
this.age = edad;
}
public int getage () {
edad de retorno;
}
Public void setage (int a age) {
this.age = edad;
}
public String getName () {
nombre de retorno;
}
public void setName (nombre de cadena) {
this.name = name;
}
}
2: mycomparator.java
La copia del código es la siguiente:
// Implementar la interfaz de comparación, es decir, definir las reglas de clasificación, puede definir casi cualquier regla
paquete com.infoearth;
import java.util.*;
clase pública mycomparator implementa comparador {
public int Compare (Object O1, Object O2) {
Persona p1 = (persona) O1;
Persona p2 = (persona) O2;
if (p1.age <p2.age)
regresar 1;
demás
regresar 0;
}
}
3: listsort.java
La copia del código es la siguiente:
paquete com.infoearth;
import java.util.arrayList;
import java.util.collections;
importar java.util.comparator;
Public Class Listsort {
public static void main (string [] args) {
ArrayList list = new ArrayList ();
list.add (nueva persona ("Lcl", 28));
list.add (nueva persona ("fx", 23));
list.add (nueva persona ("wqx", 29));
Comparator comp = new MyComParator ();
Colección.sort (lista, comp);
para (int i = 0; i <list.size (); i ++) {
Persona p = (persona) list.get (i);
System.out.println (p.getName ());
}
}
}
Por supuesto, si su lista está envuelta en un tipo básico o una cadena, solo colección.sort (lista);