Você está aqui: Java ::: Pacote java.util ::: Comparator |
|||||
Usando o método compare() da interface Comparator para definir como os elementos de uma coleção serão ordenadosQuantidade de visualizações: 4140 vezes |
|||||
O perfeito entendimento do método compare() da interface Comparator é a chave para conseguirmos um maior controle sobre a forma que os elementos de uma coleção (ArrayList, Vector, TreeSet, etc) serão ordenados. Este método possui a seguinte assinatura:
Veja que o método recebe dois argumentos do tipo T e retorna um valor inteiro. O valor retornado será um inteiro negativo se o primeiro argumento for menor que o segundo, um inteiro positivo se o primeiro argumento for maior que o segundo e zero se os dois argumentos forem iguais. Vamos ver como isso funciona? Comece criando a seguinte classe:
Veja que temos uma classe Livro com dois atributos: titulo e paginas. Nossa intenção é criar uma ArrayList de objetos da classe Livro e em seguida ordenar os livros pela quantidade de paginas, da menor para a maior. Eis o código para a classe principal:
Ao executarmos este exemplo teremos o seguinte resultado:
Se quisermos modificar a ordem da classificação basta trocarmos os operadores relacionais. Há uma forma interessante de se evitar os testes condicionais no método compare(). Veja:
Mas é claro que este truque só funciona para a classificação em ordem crescente. O método compare() da interface Comparator pode atirar duas exceções: NullPointerException se um dos argumentos for null e o comparador não permitir elementos nulos e ClassCastException se os tipos dos argumentos não permitirem a comparação. |
|||||
![]() |
|||||
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |