DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

5.4 Conhecendo melhor o Comparator.comparing

1 Implementação do Método comparing

  • O método comparing pertence à interface Comparator.

  • Ele utiliza generics para definir seus tipos de entrada e saída.

public static <T, U extends Comparable<? super U>> Comparator<T>
comparing(Function<? super T, ? extends U> keyExtractor)

  • O método recebe uma Function, que extrai a chave de comparação de um objeto do tipo T.

  • Garante que U é um tipo comparável (Comparable<? super U>).

2 Uso da API de Funções em Java 8

  • A interface Function é usada para transformar um objeto de um tipo em outro.

  • No método comparing, a Function recebe um objeto T e retorna um valor U.

  • O método apply() da Function é utilizado para extrair a chave de comparação.

3 Criando um Comparator com Lambda

  • O método retorna um Comparator criado com um lambda:

return (c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2));

  • Esse Comparator compara os objetos c1 e c2 com base na chave extraída.

4 Exemplo

Function<Usuario, String> extraiNome = u -> u.getNome();
Comparator<Usuario> comparator = Comparator.comparing(extraiNome);
usuarios.sort(comparator);

  • O método comparing simplifica a criação de comparadores reutilizáveis.

Arquivo exemplo: OrdenacaoUsuarios.java

Top comments (0)