Método 1: implementar la interfaz de comparación y anular el método de comparación
Código de clase de entidad:
Importar java.util.comparator;/*** Método de clase de estudiante 1* Implementar la interfaz de comparación* y sobrescribir el método de comparación* @author liaot**/public class Student implementa comparador <estudiante> {nombre de cadena privada; // nombre privado int Age; // Age/Reescribir el método de comparación Este ejemplo se define como comparando por edad @Override public int Compare (Student O1, Student O2) {if (o1.getage ()> o2.getage ()) {return 1; } else {return -1; }} Estudiante público (nombre de cadena, int Age) {super (); this.name = name; this.age = edad; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public int getAge () {return Age; } public void setAge (int Age) {this.age = edad; }}Clase de prueba:
import java.util.arrayList; import java.util.collections; import java.util.list; public class Main {public static void main (string [] args) {// Inicializar cuatro estudiantes diferentes Stu1 = New Student ("Passy A", 20); Estudiante stu2 = nuevo estudiante ("Passy A", 18); Estudiante stu3 = nuevo estudiante ("Passy C", 16); Estudiante stu4 = nuevo estudiante ("Passy C", 19); // Cree una nueva lista para agregar a los estudiantes a la lista de listas <Sentuent> stulist = new ArrayList <> (); stulist.add (stu1); stulist.add (stu2); stulist.add (stu3); stulist.add (stu4); System.out.println ("Antes de clasificar: ======"); para (Student Stu: Stulist) {System.out.println ("Name:"+stu.getName ()+"edad"+stu.getage ()); } // clasificar coleccións.sort (estulista, stu1); // El primer parámetro es enumerar el segundo parámetro es una instancia del objeto System.out.println ("Ordenado: ======"); para (Student Stu: Stulist) {System.out.println ("Name:"+stu.getName ()+"edad"+stu.getage ()); }}}Resultados de ejecución:
Método 2: Implemente la interfaz comparable y anula el método CompareTo
/** * Método de clase de estudiante 2 implementa una interfaz comparable y reescribe el método Compareto * * @author liaot * */public class Student2 implementa comparable <deudent2> {nombre de cadena privada; // nombre privado int Age; // Age // Reescribe el método de comparación Este ejemplo se define como comparando por edad @Override public int Compareto (Student2 Stu) {if (this.age> stu.getage ()) {return 1; } else {return -1; }} Public Student2 (nombre de cadena, int Age) {super (); this.name = name; this.age = edad; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public int getAge () {return Age; } public void setAge (int Age) {this.age = edad; }}Clase de prueba
import java.util.arrayList; import java.util.collections; import java.util.list; public class Main2 {public static void main (string [] args) {// Inicializar cuatro estudiantes diferentes stu1 = new student2 ("passy a", 20); Student2 Stu2 = New Student2 ("Passy A", 18); Student2 Stu3 = New Student2 ("Passy C", 16); Student2 Stu4 = New Student2 ("Passy C", 19); // Cree una nueva lista para agregar a los estudiantes a la lista de listas <deudent2> stulist = new ArrayList <> (); stulist.add (stu1); stulist.add (stu2); stulist.add (stu3); stulist.add (stu4); System.out.println ("Antes de clasificar: ======"); para (Student2 Stu: Stulist) {System.out.println ("Name:"+stu.getName ()+"edad"+stu.getage ()); } // Sort Collections.sort (estulista); // Solo un parámetro es List System.out.println ("Ordenado: ======"); para (Student2 Stu: Stulist) {System.out.println ("Name:"+stu.getName ()+"edad"+stu.getage ()); }}}Resultados de ejecución
3. Resumen: la diferencia entre la escritura y el uso de los dos métodos:
El método de clasificación Java anterior de acuerdo con los atributos de los objetos en la lista es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.