Ordenacao  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Icavalera
Thread.start()
[Avatar]

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 !???
Roger75
GUJ Master
[Avatar]

Membro desde: 26/10/2003 12:18:59
Mensagens: 1294
Offline

Este link tem um exemplo bom:

http://www.onjava.com/lpt/a/3286
cecaldas
Java Ninja

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;

Cada tipo de comparação deve ter uma classe.
andreban
JavaTeenager

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

--== http://www.codemansion.com/ ==-- Blog de Desenvolvimento Android e Games

-== http://mobplug.com/ ==-- Simple products, powerful solutions!
SCJA | SJCP | SCJD | SCWCD
cecaldas
Java Ninja

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


ctrl+c ctrl + v dos infernos.
Icavalera
Thread.start()
[Avatar]

Membro desde: 14/04/2006 10:51:47
Mensagens: 48
Offline

Roger75 wrote:Este link tem um exemplo bom:

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


Ajudo um pouco ... mas o atributo pelo qual quero ordenar é do tipo double .... dai como o comparetor é int n da muito certo ...
cecaldas
Java Ninja

Membro desde: 01/03/2004 13:17:19
Mensagens: 264
Offline

Icavalera wrote:
Roger75 wrote:Este link tem um exemplo bom:

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


Ajudo um pouco ... mas o atributo pelo qual quero ordenar é do tipo double .... dai como o comparetor é int n da muito certo ...


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.
Icavalera
Thread.start()
[Avatar]

Membro desde: 14/04/2006 10:51:47
Mensagens: 48
Offline

exemplos?
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team