Ordenacao

7 respostas
Icavalera

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

7 Respostas

Roger75

Este link tem um exemplo bom:

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

C

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.

A

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.

Ops, acho que o amigo acima escorregou o dedo :lol:

Se o primeiro objeto for menor que o segundo deve retornar -1

C

andreban:
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.

Ops, acho que o amigo acima escorregou o dedo :lol:

Se o primeiro objeto for menor que o segundo deve retornar -1

ctrl+c ctrl + v dos infernos.

Icavalera

Roger75:
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 …

C

Icavalera:
Roger75:
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

exemplos?

Criado 11 de agosto de 2006
Ultima resposta 27 de mar. de 2007
Respostas 7
Participantes 4