No Java 8, interfaces podem ter métodos estáticos além dos métodos default.
A interface Comparator introduziu métodos utilitários, como comparing(), que simplificam a criação de comparadores.
Exemplo usando Comparator.comparing():
Comparator<Usuario> comparator = Comparator.comparing(u -> u.getNome());
usuarios.sort(comparator);
Forma mais curta:
usuarios.sort(Comparator.comparing(u -> u.getNome()));
Com static import:
import static java.util.Comparator.comparing;
usuarios.sort(comparing(u -> u.getNome()));
5.4 Conhecendo Melhor o Comparator.comparing()
comparing() exige que o critério de ordenação seja Comparable.
Exemplo: String já implementa Comparable, então a ordenação por nome funciona.
Ordenação por ordem natural
Se tivermos uma lista de String, podemos ordená-la assim:
List<String> palavras = Arrays.asList("Casa do Código", "Alura", "Caelum");
Collections.sort(palavras); // Método tradicional
No Java 8, o método List.sort() exige um Comparator, então podemos usar:
palavras.sort(Comparator.naturalOrder());
Para ordem inversa, usamos:
palavras.sort(Comparator.reverseOrder());
Vantagens do Uso de Comparator no Java 8:
✅ Código mais limpo e legível
✅ Evita necessidade de classes anônimas
✅ Aproveita métodos utilitários para ordenação simplificada
Top comments (0)