Prefácio
A interface da lista no pacote java.util herda a interface de coleta e é usada para armazenar coleções de objetos. Portanto, ao classificar esses objetos, a classe de objeto pode comparar o mesmo objeto ou usar o comparador para executar a comparação e a classificação.
A aula de entidade estudantil, incluindo atributos de nome e idade, é classificada em ordem crescente em nome ao comparar e, se os nomes forem iguais, é classificado em ordem crescente em idade.
O primeiro tipo: Comparação de aulas de entidade por si só
(Implemente a interface comparável: public interface Comparable<T> , existe uma declaração de método: public int compareTo(T o); ););
Código de exemplo:
A classe pública Student implementa comparável a <very Student> {nome da string privada; private Int Age; public student () {super (); // TODO Construtor GOERATIDO AUTO ESTUB} 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; } @Override public int Compareto (Student O) {// TODO Método Gerado Auto-Generado Stub Int Flag = this.name.compareto (O.Name); if (sinalizador == 0) {sinalizador = this.age - o.age; } retornar sinalizador; }} Em seguida, use sort(Comparator<? super E> c) da classe de lista ou sort(List<T> list) da classe de ferramentas java.util.Collections (na verdade, existe apenas uma frase nela: list.sort(null); ) para classificar:
Lista <estudante> alunos = new ArrayList <very Student> (); alunos.add (novo aluno ("A", 10)); estudantes.Add (novo aluno ("B", 12)); estudantes.Add (novo aluno ("B", 11)); alunos.add (novo aluno ("AC", 20)); estudantes.sort (nulo); //CollectionS.Sort(Students); resultado:
A 10 ac 20 b 11 b 12
O segundo tipo: classifique com a ajuda de um comparador.
Código de exemplo:
Public Class Student {private String Name; private Int Age; public student () {super (); // TODO Construtor GOERATIDO AUTO ESTUB} 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; }} A classe comparadora java.util.Comparator é uma interface ( public interface Comparator<T> ), que contém int compare(T o1, T o2); e outros métodos:
Nosso comparador deseja implementar esta interface e implementar compare :
Classe privada StudentComparator implementa o comparador <very Student> {@Override public Int Compare (Student O1, Student O2) {// TODO Method Auto-Generated Stub Int Flag = O1.getName (). compareto (o2.getName ()); if (flag == 0) {sinalizador = o1.getage () - o2.getage (); } retornar sinalizador; }} Ao comparar, você pode usar o método de sort(Comparator<? super E> c) da lista (ou a lista (lista <T>, comparador <? Super t> c) Método do java.util.Collections Tool Class para sort(List<T> list, Comparator<? super T> c) ) para classificar.
Lista <estudante> alunos = new ArrayList <very Student> (); alunos.add (novo aluno ("A", 10)); estudantes.Add (novo aluno ("B", 12)); estudantes.Add (novo aluno ("B", 11)); alunos.add (novo aluno ("AC", 20)); Teste t = novo teste (); estudantes.sort (T.New StudentComparator ()); //CollectionS.Sort(Students, T.New StudentComparator ()); para (estudante do aluno: estudantes) {System.out.println (Student.getName ()+""+student.getage ()); } O resultado é o mesmo que o primeiro método:
A 10 ac 20 b 11 b 12
Resumir
O exposto acima é sobre a lista de classificação em Java. Espero que o conteúdo deste artigo seja de ajuda para estudar ou trabalhar de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar.