Collections Iniciante

Crie regras de ordenação legíveis e combináveis com métodos fábrica de Comparator.

✕ Anonymous comparator
people.sort(new Comparator<Person>() {
    @Override
    public int compare(Person a, Person b) {
        int byName = a.name().compareTo(b.name());
        return byName != 0 ? byName : Integer.compare(a.age(), b.age());
    }
});
✓ Java 8+
people.sort(Comparator.comparing(Person::name)
        .thenComparingInt(Person::age));
Viu um problema com este código? Nos avise.
🧩

Combinável

Regras de ordenação são encadeadas naturalmente.

👁

Mais fácil de revisar

As chaves de ordenação e a prioridade ficam explícitas.

🐛

Comparações mais seguras

Métodos auxiliares especializados evitam comparadores aritméticos propensos a erros.

Abordagem Antiga
Comparator anônimo
Abordagem Moderna
Fábricas de Comparator
Desde o JDK
8
Dificuldade
Iniciante
Fábricas de Comparator e ordenação fluente
Disponível

Disponível desde o JDK 8 (março de 2014)

Fábricas de Comparator expressam a ordenação de forma declarativa e combinam chaves primárias e secundárias sem ramificações escritas manualmente.