Este post discutirá como classificar uma lista de objetos usando Comparator em Java. Show UMA Comparador é uma função de comparação, que fornece uma ordenação para coleções de objetos que não possuem uma ordenação natural. O implementador desta classe precisa substituir o método abstrato compare() definido em java.util.Comparator, que compara seus dois argumentos para ordem. O valor devolvido pelo compare() O método decide a posição do primeiro objeto em relação ao segundo objeto.
1. Passe Comparador como argumento para sort() métodoComparadores, se passados para um método de classificação (como Collections.sort (e Arrays.sort), permitem um controle preciso sobre a ordem de classificação. No exemplo a seguir, obtemos um Comparator que compara Person objetos por sua idade.
Download Executar código Resultado:
pode ser reescrita como:
Como comparar objetos com os vários campos?1. Podemos classificar facilmente a lista da pessoa primeiro por age e depois por name, como mostrado abaixo. Já para pessoas da mesma idade, a ordenação é decidida pelo nome da pessoa.
Download Executar código
Download Executar código
Código de download
Código de download 2. Implemente o Comparator em uma classe separadaPodemos até implementar Comparator em uma classe separada e, em seguida, passar a instância dessa classe para o sort() método. Isso é demonstrado abaixo:
Download Executar código Resultado: 3. Passe o Comparador para List.sort() métodoO Java 8 introduziu vários aprimoramentos no List interface. Agora List tem seu próprio método de classificação sort() que classifica a lista de acordo com a ordem induzida pelo especificado Comparator. Isso é demonstrado abaixo:
Download Executar código Resultado: 4. Passe o Comparador para Stream.sorted() métodoTambém podemos passar nosso comparador para o sorted() método do Stream class, que retorna um fluxo que consiste nos elementos desse fluxo, classificados de acordo com o Comparator. Aqui está um exemplo de trabalho:
Download Executar código Resultado: Isso é tudo sobre como classificar uma lista de objetos usando Comparator em Java.
|