5.3 Métodos Estáticos na Interface Comparator

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 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 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

Mar 8, 2025 - 19:31
 0
5.3 Métodos Estáticos na Interface Comparator

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 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 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