Boa tarde, gostaria de saber se alguem sabe como faço pra ordenar dois campos em um Collections.sort.
Por exemplo.
dentro de uma coleçao eu tenho dois campo um id, nome e idade, ai eu quero que fique ordenado por id e idade.
Alguem sabe como devo fazer?
Implemente um Comparator especializado para o seu objeto de negócio:
http://java.sun.com/docs/books/tutorial/collections/algorithms/#sorting
Crie uma classe que implemente java.util.Comparator, cujo método compare retorne:
-1 se obj1.id < obj2.id
ou se obj1.id == obj2.id e obj1.idade < obj2.idade
0 se obj1.id == obj2.id e obj1.idade == obj2.idade
+1 se obj1.id > obj2.id
ou se obj1.id == obj2.id e obj1.idade > obj2.idade.
OK?
Obrigado pessoal, consegui solucionar utilizando o comparador
public class ComparadorIdIdade implements Comparator {
public int compare(Pessoa pessoa1,Pessoa pessoa2) {
int result = pessoa1.getId().compareTo(pessoa2.getId());
return result == 0 ? pessoa1.getIdade().compareTo(pessoa2.getIdade()) : result;
}
}
e lá na action utilizei
List colecao= new ArrayList();
colecao.addAll(pessoa.clPessoa());
Collections.sort((List) colecao,new ComparadorIdIdade());
Abraços pessoal e que Deus lhe abençoe