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)