Você está aqui: Java ::: Pacote java.util ::: Comparator |
Como escrever uma classe que implementa a interface Comparator para controlar a ordenação dos elementos de uma coleçãoQuantidade de visualizações: 2590 vezes |
Nesta dica eu mostro como escrever uma classe que implementa a interface Comparator para controlar a ordenação dos elementos de uma coleção. No exemplo mostro também como usar constantes para definir a forma de ordenação. Vamos começar criando uma classe Livro. Veja o código:package estudos; public class Livro{ // para simplificar o exemplo não usarei encapsulamento de dados String titulo; int paginas; // construtor não padrão Agora vamos criar a classe que implementará a interface Comparator: package estudos; import java.util.Comparator; public class OrdenacaoLivros implements Comparator<Livro>{ // constantes que permitem definir o tipo de ordenação a ser realizada public final static int TITULO = 1; public final static int PAGINAS = 2; private int tipoOrdenacao; // guarda o tipo da ordenação desejada public OrdenacaoLivros(int tipoOrdenacao){ this.tipoOrdenacao = tipoOrdenacao; } // sobrescreve o método compare() e faz a ordenação de acordo com o critério desejado @Override public int compare(Livro a, Livro b){ // ordenação por páginas? Note que o método compare() testa o tipo de ordenação para classificar os livros de acordo com o número de páginas ou ordem alfabética do título. Finalmente, veja o código para a classe principal da aplicação: package estudos; import java.util.ArrayList; import java.util.Collections; public class Estudos{ public static void main(String[] args) { // vamos criar uma ArrayList de objetos da classe Livro ArrayList<Livro> livros = new ArrayList(); livros.add(new Livro("Programando em Java", 259)); livros.add(new Livro("A Bíblia do Delphi", 1043)); livros.add(new Livro("Aprenda PHP e MySQL", 127)); livros.add(new Livro("Tutorial Básico de JSF", 41)); // vamos ordenar os elementos do ArrayList usando o método sort() da classe Collectons // e fornecendo um objeto OrdenacaoLivros com o critério de ordenação por páginas Collections.sort(livros, new OrdenacaoLivros(OrdenacaoLivros.PAGINAS)); // vamos percorrer e exibir os valores dos elementos ordenados por quantidade de página for(Livro livro : livros){ Ao executarmos este exemplo nós teremos o seguinte resultado: Título: Tutorial Básico de JSF; Páginas: 41 Título: Aprenda PHP e MySQL; Páginas: 127 Título: Programando em Java; Páginas: 259 Título: A Bíblia do Delphi; Páginas: 1043 Título: A Bíblia do Delphi; Páginas: 1043 |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Python - Como repetir os elementos de um vetor ou matriz usando a função repeat() da NumPy do Python |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |