Ordenacao

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 !???

Este link tem um exemplo bom:

http://www.onjava.com/lpt/a/3286

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?