Prefacio
La interfaz de la lista en el paquete java.util hereda la interfaz de colección y se utiliza para almacenar colecciones de objetos. Por lo tanto, al clasificar estos objetos, la clase de objeto puede comparar el mismo objeto en sí mismo o usar el comparador para realizar la comparación y la clasificación.
La clase de entidad estudiantil, incluidos los atributos de nombre y edad, se clasifica en orden ascendente en nombre al comparar, y si los nombres son los mismos, se clasifica en orden ascendente en edad.
El primer tipo: comparación de clases de entidad por sí mismos
(Implemente la interfaz comparable: public interface Comparable<T> , existe una declaración de método: public int compareTo(T o); )
Código de muestra:
El estudiante de clase pública implementa comparable <estudiante> {nombre de cadena privada; edad privada int; estudiante público () {super (); // TODO STUB AUTO GENERADO} Public Student (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; } @Override public int Compareto (Student O) {// TODO Auto Generado Método stub int if (flag == 0) {flag = this.age - o.age; } Bandera de retorno; }} Luego use sort(Comparator<? super E> c) de la clase de lista o sort(List<T> list) de la clase de herramienta java.util.Collections (en realidad, solo hay una oración en él: list.sort(null); ) para ordenar:
Lista <deuding> Students = New ArrayList <Sentuent> (); estudiantes.Add (nuevo estudiante ("A", 10)); estudiantes.Add (nuevo estudiante ("B", 12)); estudiantes.Add (nuevo estudiante ("B", 11)); estudiantes.Add (nuevo estudiante ("AC", 20)); Estudiantes.sort (nulo); //Collections.sort(students); resultado:
A 10 AC 20 B 11 B 12
El segundo tipo: ordene con la ayuda de un comparador.
Código de muestra:
Estudiante de clase pública {nombre de cadena privada; edad privada int; estudiante público () {super (); // TODO STUB AUTO GENERADO} Public Student (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; }} La clase de comparador java.util.Comparator es una interfaz ( public interface Comparator<T> ), que contiene int compare(T o1, T o2); y otros métodos:
Nuestro comparador quiere implementar esta interfaz e implementar compare :
Comparador de empleadores de Student de clase privada implementos <stuent> {@Override public int Compare (Student O1, Student O2) {// TODO Auto Generated Method stub int if (flag == 0) {flag = o1.getage () - o2.getage (); } Bandera de retorno; }} Al comparar, puede usar el método sort(Comparator<? super E> c) de List (o el Método Sort (List <T> List, Comparator <? Super t> c) del método java.util.Collections de herramienta para sort(List<T> list, Comparator<? super T> c) método) para ordenar.
Lista <deuding> Students = New ArrayList <Sentuent> (); estudiantes.Add (nuevo estudiante ("A", 10)); estudiantes.Add (nuevo estudiante ("B", 12)); estudiantes.Add (nuevo estudiante ("B", 11)); estudiantes.Add (nuevo estudiante ("AC", 20)); Prueba t = nueva test (); Students.sort (T.Neow StudentComparator ()); //Collections.sort(students, t.new studentcomparator ()); para (estudiante estudiantil: estudiantes) {system.out.println (student.getName ()+""+student.getage ()); } El resultado es el mismo que el primer método:
A 10 AC 20 B 11 B 12
Resumir
Lo anterior tiene que ver con la lista de clasificación en Java. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse.