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 !???
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.
[quote=cecaldas]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.[/quote]
Ops, acho que o amigo acima escorregou o dedo :lol:
Se o primeiro objeto for menor que o segundo deve retornar -1
[quote=andreban][quote=cecaldas]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.[/quote]
Ops, acho que o amigo acima escorregou o dedo :lol:
Se o primeiro objeto for menor que o segundo deve retornar -1[/quote]
ctrl+c ctrl + v dos infernos.
[quote=Roger75]Este link tem um exemplo bom:
http://www.onjava.com/lpt/a/3286[/quote]
Ajudo um pouco … mas o atributo pelo qual quero ordenar é do tipo double … dai como o comparetor é int n da muito certo …
[quote=Icavalera][quote=Roger75]Este link tem um exemplo bom:
http://www.onjava.com/lpt/a/3286[/quote]
Ajudo um pouco … mas o atributo pelo qual quero ordenar é do tipo double … dai como o comparetor é int n da muito certo …
[/quote]
O retorno do compare que tem q ser o int, não importa que tipo de atributos estás comparando. Pode ser até String se quiseres.
exemplos?