DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

1 1 1

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

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

DEV shines when you're signed in, unlocking a customized experience with features like dark mode!

Okay