Método 1: Implemente a interface do comparador e substitua o método de comparação
Código de classe da entidade:
importar java.util.comparator;/*** Método da classe do aluno 1* Implemente a interface do comparador* e substitua o método de comparação* @author liaot**/public classe de classe implementa o comparador <vertudy> {nome da string privada; // nome private int Age; // idade/reescreva o método de comparação Este exemplo é definido como comparado por Age @Override public Int Compare (Student O1, Student O2) {if (o1.getage ()> o2.getage ()) {return 1; } else {return -1; }} public student (nome da string, int age) {super (); this.name = nome; this.age = idade; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public int getage () {Age de retorno; } public void setage (int Age) {this.age = Age; }}Classe de teste:
importar java.util.ArrayList; importar java.util.Collections; importar java.util.list; public class Main {public static void main (string [] args) {// inicialize quatro estudantes diferentes estudantes stu1 = novo aluno ("passy a", 20); Estudante stu2 = novo aluno ("passy a", 18); Aluno stu3 = novo aluno ("passy c", 16); Estudante stu4 = novo aluno ("passy c", 19); // Crie uma nova lista para adicionar alunos à lista de listas <avery> estulist = new ArrayList <> (); estulista.Add (STU1); estulista.add (stu2); estulista.Add (STU3); estulista.add (STU4); System.out.println ("Antes de classificar: ======"); for (Student Stu: estulista) {System.out.println ("Nome:"+Stu.getName ()+"Age"+Stu.getage ()); } // Coleções de classificação.Sort (estulista, STU1); // O primeiro parâmetro é listar o segundo parâmetro é uma instância do objeto System.out.println ("classificado: ======"); for (Student Stu: estulista) {System.out.println ("Nome:"+Stu.getName ()+"Age"+Stu.getage ()); }}}Resultados em execução:
Método 2: Implemente a interface comparável e substitua o método compareto
/** * O método da classe do aluno 2 implementa a interface comparável e reescreve o método compareto * * @author liaot * */public class Student2 implementa comparável <vertenty2> {nome da string privada; // nome private int Age; // Age // Reescreva o método de comparação Este exemplo é definido como comparado por Age @Override public int Compareto (Student2 Stu) {if (this.age> stu.getage ()) {return 1; } else {return -1; }} public student2 (nome da string, int Age) {super (); this.name = nome; this.age = idade; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public int getage () {Age de retorno; } public void setage (int Age) {this.age = Age; }}Classe de teste
importar java.util.arraylist; importar java.util.Collections; importar java.util.list; public class Main2 {public static void main (string [] args) {// inicialize quatro estudantes diferentes estudantes2 stu1 = new Student2 ("passy a", 20); Estudante2 stu2 = novo aluno2 ("passy a", 18); Estudante2 stu3 = novo aluno2 ("passy c", 16); Estudante2 stu4 = novo aluno2 ("passy c", 19); // Crie uma nova lista para adicionar alunos à lista da lista <Dentulion2> estulist = new ArrayList <> (); estulista.Add (STU1); estulista.add (stu2); estulista.Add (STU3); estulista.add (STU4); System.out.println ("Antes de classificar: ======"); para (Student2 Stu: estulista) {System.out.println ("Nome:"+Stu.getName ()+"Age"+Stu.getage ()); } // collection.sort (estulista); // apenas um parâmetro é o list System.out.println ("classificado: ======"); para (Student2 Stu: estulista) {System.out.println ("Nome:"+Stu.getName ()+"Age"+Stu.getage ()); }}}Resultados de execução
3. Resumo: A diferença entre escrita e uso dos dois métodos:
O método de classificação Java acima de acordo com os atributos dos objetos na lista é todo o conteúdo que compartilho com você. Espero que possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.