Exemplo 1
A cópia do código é a seguinte:
pacote com.yonyou.test;
importar java.util.arraylist;
importar java.util.Collections;
importar java.util.comparator;
importar java.util.list;
Teste de classe pública {
public static void main (string [] args) {
Estudante zlj = novo aluno ("ding xiaoyu", 21);
Estudante dxy = novo aluno ("Zhao Si", 22);
Estudante CJC = novo aluno ("Zhang San", 11);
Estudante LGC = novo aluno ("Liu Wu", 19);
List <very Student> StudentList = new ArrayList <Dentul> ();
StudentList.add (ZLJ);
StudentList.add (DXY);
StudentList.add (CJC);
StudentList.add (LGC);
System.out.println ("classificado por ano:");
Coleções.sort (Lista de Students, new SortByage ());
para (estudante estudante: Lista de Students) {
System.out.println (Student.getName () + " /" + student.getage ());
}
System.out.println ("==========");
System.out.println ("classificado por nome");
Coleções.sort (StudentList, new SortByName ());
para (estudante estudante: Lista de Students) {
System.out.println (Student.getName () + " /" + student.getage ());
}
}
}
classe Sortbyage implementa o comparador {
public int compare (objeto O1, objeto O2) {
Aluno s1 = (aluno) O1;
Aluno s2 = (aluno) O2;
if (s1.getage ()> s2.getage ())
retornar 1;
else if (s1.getage () == s2.getage ()) {
retornar 0;
}
retornar -1;
}
}
classe SortbyName implementa o comparador {
public int compare (objeto O1, objeto O2) {
Aluno s1 = (aluno) O1;
Aluno s2 = (aluno) O2;
if (s1.getName (). compareto (s2.getName ()) <0)
retornar -1;
caso contrário, if (s1.getName (). compareto (s2.getName ())> 0) {
retornar 1;
}
retornar 0;
}
}
Classe Student {
private Int Age;
nome de string privado;
public int getage () {
idade de retorno;
}
Public Void Setage (Int Age) {
this.age = idade;
}
public String getName () {
Nome de retorno;
}
public void setName (nome da string) {
this.name = nome;
}
Public Student (nome da string, Int Age) {
this.age = idade;
this.name = nome;
}
}
Exemplo 2
Costumo encontrar problemas com a classificação da matriz.
De fato, essa situação é frequentemente encontrada.
O código -fonte é fornecido abaixo:
1: Arquivo Person.java:
A cópia do código é a seguinte:
Pessoa da classe pública {
Nome da string;
Int Age;
Pessoa pública (nome da string, Int Age) {
this.name = nome;
this.age = idade;
}
public int getage () {
idade de retorno;
}
Public Void Setage (Int Age) {
this.age = idade;
}
public String getName () {
Nome de retorno;
}
public void setName (nome da string) {
this.name = nome;
}
}
2: mycomparator.java
A cópia do código é a seguinte:
// Implemente a interface do comparador, ou seja, defina as regras de classificação, você pode definir quase todas as regras
pacote com.infoearth;
importar java.util.*;
classe pública MyComparator implementa o comparador {
public int compare (objeto O1, objeto O2) {
Pessoa P1 = (pessoa) O1;
Pessoa P2 = (pessoa) O2;
if (p1.age <p2.age)
retornar 1;
outro
retornar 0;
}
}
3: listsort.java
A cópia do código é a seguinte:
pacote com.infoearth;
importar java.util.arraylist;
importar java.util.Collections;
importar java.util.comparator;
classe pública ListSort {
public static void main (string [] args) {
ArrayList List = new ArrayList ();
list.add (nova pessoa ("lcl", 28));
list.add (nova pessoa ("fx", 23));
list.add (nova pessoa ("WQX", 29));
Comparador comp = new MyComparator ();
Coleções.Sort (List, Comp);
for (int i = 0; i <list.size (); i ++) {
Pessoa p = (pessoa) list.get (i);
System.out.println (p.getName ());
}
}
}
Obviamente, se sua lista for envolvida em um tipo básico ou string, apenas coleções.sort (lista);