como faz pra ordenar uma COllection ou List ?? os objetos dentro dela implemental comprable … como faz pra ondenar mesmo ?
como assim? n entendi
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 ^^
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:
[code] 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 …
}
}
}
[/code]
Arrays.sort(list.toArray())
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 ?
java.util.Collection.sort(list);
[quote=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.
[/quote]
Se forem classes tem que implementar a interface Comparable. que é o a classe Arrays usa
[]'s
[quote=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.
[/quote]
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());
}
//...
[quote=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 ?[/quote]
Collections.sort(list, Collections.reverseOrder());
PS: Leia toda a documentação do Collections e do Arrays. Tem dezenas de métodos muito úteis.