Membro desde: 14/04/2006 10:51:47
Mensagens: 48
Offline
Eu tenho que fazer uma ordenação por atributo.
Tenho uma lista de objetos e preciso fazer em uma hora a ordenação por uma atributo e em outra por outro atributo.
Por ex uma lista ArrayList de obj Pessoa ... onde pessoa tem nome e numero.
Um,a hora vo ordenar por nome e em outro por numero.
Já procurei e no API tem la Collections.sort (lista l Comparetor c) mas eu n entendi como fazer esse tal de ?Comparetor? ...
Tem q fazer uma classe so pra isso!???
Tem algum exemplo!???
Como no caso são duas ordenações por atributos diferentes daí então tenho q fazer 2 classes!???
Eu coloco isso na própria classe Pessoa ou na classe onde esta a lista de Pessoas !???
Membro desde: 01/03/2004 13:17:19
Mensagens: 264
Offline
Tu tens que criar uma classe que implemente Comparator e sobrescrever o método compare. Esse método deve retornar um int como resultado da comparação de um objeto, tipo:
Se o primeiro objeto for maior que o segundo deve retornar 1;
Se o primeiro objeto for igual ao segundo deve retornar 0;
Se o primeiro objeto for menor que o segundo deve retornar 0;
Membro desde: 11/07/2006 10:41:57
Mensagens: 188
Localização: Rio de Janeiro
Offline
cecaldas wrote:Tu tens que criar uma classe que implemente Comparator e sobrescrever o método compare. Esse método deve retornar um int como resultado da comparação de um objeto, tipo:
Se o primeiro objeto for maior que o segundo deve retornar 1;
Se o primeiro objeto for igual ao segundo deve retornar 0;
Se o primeiro objeto for menor que o segundo deve retornar 0;
Cada tipo de comparação deve ter uma classe.
Ops, acho que o amigo acima escorregou o dedo
Se o primeiro objeto for menor que o segundo deve retornar -1
Membro desde: 01/03/2004 13:17:19
Mensagens: 264
Offline
andreban wrote:
cecaldas wrote:Tu tens que criar uma classe que implemente Comparator e sobrescrever o método compare. Esse método deve retornar um int como resultado da comparação de um objeto, tipo:
Se o primeiro objeto for maior que o segundo deve retornar 1;
Se o primeiro objeto for igual ao segundo deve retornar 0;
Se o primeiro objeto for menor que o segundo deve retornar 0;
Cada tipo de comparação deve ter uma classe.
Ops, acho que o amigo acima escorregou o dedo
Se o primeiro objeto for menor que o segundo deve retornar -1