Ordenar List ou Collection ou algo assim [RESOLVIDO]

9 respostas
Lavieri

como faz pra ordenar uma COllection ou List ?? os objetos dentro dela implemental comprable … como faz pra ondenar mesmo ?

9 Respostas

C

como assim? n entendi

Lavieri

tenho uma coleção com 30 objetos… que implementam comprable… ou seja… da preu saber quem é maior que quem…

sendo assim… deveria ter 1 forma de ordenar… via comandos java, e acredito que tem… ainda estou procurando… o como… mais q tem tem ^^

thiagotrss

Pelo que me lembro, List não tem o método compareTo não.
Até porque se os objetos da lista forem classes, vc não pode compará-las umas com as outras.

Voce deve comparar os atributos das classes.

Exemplo:

public class ObjetoX {
private int idade;
public getIdade() {
return this.idade;
}
}

public void adiciona(ObjetoX) {
for(int i=0 ; i<lista.zie() ; ++i) {
    if(lista.getIdade < ObjetoX.getIdade()) {
       // TODO ...
    }
}
}
Felagund

Arrays.sort(list.toArray())

Lavieri

pronto achei como…

java.util.Collection.sort(list);

ops… pessoal ai respondeu antes deste post… de toda forma… tem como fazer a listagem ao contrario ?? ^^ na ordem inversa ?

C

java.util.Collection.sort(list);

Felagund

thiagotrss:
Pelo que me lembro, List não tem o método compareTo não.
Até porque se os objetos da lista forem classes, vc não pode compará-las umas com as outras.

Se forem classes tem que implementar a interface Comparable. que é o a classe Arrays usa

[]'s

Lavieri

thiagotrss:
Pelo que me lembro, List não tem o método compareTo não.
Até porque se os objetos da lista forem classes, vc não pode compará-las umas com as outras.

Voce deve comparar os atributos das classes.

tem como sim… por exemplo… na classe abaixo fiz assim … é beta, por isso ta xeio de returns… vou refatorar ^^

public class VeiculoLocacao implements Comparable<VeiculoLocacao> { //... public int compareTo(VeiculoLocacao o) { if (o.isNuncaLocado()) if (isNuncaLocado()) return 0; else return 1; else if (o.isLocado()) if (isLocado()) return this.getPrevisaoRetorno().compareTo(o.getPrevisaoRetorno()); else return -1; else return this.getDisponivelDesde().compareTo(o.getDisponivelDesde()); } //...

B

Lavieri:
pronto achei como…

java.util.Collection.sort(list);

ops… pessoal ai respondeu antes deste post… de toda forma… tem como fazer a listagem ao contrario ?? ^^ na ordem inversa ?

Collections.sort(list, Collections.reverseOrder());

PS: Leia toda a documentação do Collections e do Arrays. Tem dezenas de métodos muito úteis.

Criado 22 de janeiro de 2009
Ultima resposta 22 de jan. de 2009
Respostas 9
Participantes 5