ExpertiDict

Java · Intermediário · Inglês · Técnico

Comparator

/ˈkɑmpəˌreɪtər/substantivo

Interface que define uma ordem de comparação entre objetos, independente da classe deles. Permite ordenar listas por vários critérios sem mudar o tipo.

Onde usar

Aparece em sort e ordenações do dia a dia: Comparator.comparing(Pessoa::nome).thenComparing(...). Em review: 'não subtraia inteiros no compare'.

Em código

record Pessoa(String nome, int idade) {}
var lista = new ArrayList<Pessoa>();
lista.sort(
  Comparator.comparing(Pessoa::nome)
    .thenComparingInt(Pessoa::idade)
);

Exemplos

Sort by name, then by age, using a Comparator.

Ordene por nome e depois por idade, usando um Comparator.

Don't subtract ints in compare, use Integer.compare.

Não subtraia ints no compare, use Integer.compare.

Cuidado

Subtrair dois ints dentro de compare pode estourar; use Integer.compare. E o Comparator é externo, diferente do Comparable, que fica na própria classe.

Veja também

Todos os termos de Java