Como ordenar uma collection por vários atributos, no Java?

Exclusivo para assinantes…

Hoje, estavamos conversando, Fabricio, Eduardo e eu, sobre como ordenar uma lista de objetos no Java, mas esta ordenação deveria acontecer com base em múltiplos atributos.

Como primeira resultado de nossa conversa, lhes apresento a maneira que funciona antes, e depois da inclusão dos Stream, no Java. E depois a solução que só funciona nas versões mais novas.

Primeiro você deve criar criar classes que implementem a interface Comparator, uma classe para cada atributo a ser ordenado.

Depois, você deve criar uma classe capaz, de iterar entre todos os comparators, e realizar a ordenação.

Pronto, agora basta utilizar o seu MultiComparatr :D

Mas, você também pode jogar esses comparators todos fora, e utilizar as novas APIs, e fazer com que o Java crie-os para você, inclusive, ordenando por todos os atributos que deseja, encadeando-os com o método themComparing, assim:

Faça software melhor. Deixe-me lhe dizer como!

[]’s