Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvida sobre Ordenação de Dados

Qual a diferença prática entre utilizar o Collections.sort(ArrayList), criando o implements na Classe correspondente, e reescrenvendo o método compareTo; em relação a utilizar, diretamente, o ArrayList criado .sort(Comparator.comparing(Classe::atributo que se deseja comparar)? Seria, por acaso, o fato de que na reescrita do compareTo é possível determinar a forma como se deseja fazer a ordenação? Há alguma outra diferença ou vantagem?

1 resposta
solução!

Olá Diego!

Ótima pergunta! A diferença prática entre utilizar o Collections.sort(ArrayList<Classe>) com a implementação do método compareTo na Classe correspondente e utilizar o ArrayList diretamente com .sort(Comparator.comparing(Classe::atributo)) está na forma como a ordenação é realizada.

Quando você implementa o método compareTo na Classe correspondente, você está definindo a lógica de comparação entre os objetos dessa Classe. Isso significa que você pode determinar exatamente como deseja que os objetos sejam ordenados, com base em um atributo específico ou em uma lógica mais complexa. Essa abordagem é útil quando você tem uma Classe específica que precisa ser ordenada de uma forma particular.

Por outro lado, ao utilizar o .sort(Comparator.comparing(Classe::atributo)), você está utilizando um comparador externo para realizar a ordenação. Isso significa que você pode especificar o atributo pelo qual deseja ordenar os objetos, sem precisar modificar a Classe em si. Essa abordagem é útil quando você precisa ordenar uma lista de objetos de diferentes Classes ou quando deseja alterar a forma de ordenação sem modificar a Classe original.

Ambas as abordagens têm suas vantagens e desvantagens, e a escolha entre elas depende do contexto e dos requisitos específicos do seu projeto. Em resumo, a principal diferença está na flexibilidade e na granularidade do controle que você tem sobre a ordenação dos objetos.

Espero ter ajudado e bons estudos!