Eu não estou conseguindo ordenar a Lista …
alguem pode me ajudar ?
por exemplo:
tenho um objeto chamado TIMEDEFUTEBOL.
TIMEDEFUTEBOL tem como atributos:
int numCampeonatosBrasileiros;
int numCampenatosMundial;
String nome;
Tenho minha Lista:
List equipes = new ArrayList();
como eu posso ordenar a List equipes por numCampeonatosBrasileiros ??
o resultado ja sabemos: Flamengo e São Paulo vão ficar no topo rsrsrs…
mas serio, eu to ha um tempão tentando fazer isso e tenho que comitar essa implementação ainda hoje…
Ao usar Collections.sort( seuObjeto ), vai acontecer a ordenação natural… pra objetos String sabemos que é a ordem alfabetica, pra um objeto Number por exemplo sabemos que e a ordem crescente… mas, e pra objetos TIMEDEFUTEBOL? qual é a ordem natural?
O Java nao sabe, entao vc vai te q dizer a ele… para isso, faça seu objeto implementar a interface Comparable, que vai te forçar a implementar o metodo compareTo( Object outroObjeto )… entao nesse metodo vc define que um objeto e maior do q o outro se seu atributo X tem valor maior…
Ou… vc pode criar varios “Comparadores” (Comparator), e entao usar o metodo sobrecarregado Collecions.sort( objeto, comparador ) pra poder comparar seu objeto de varias maneiras possiveis.
public class BrokerConfigAction extends AdminAction {
.
.
.
private List<SinacorPortfolio> portfoliosViewDefault;
.
.
.
//lancei essa innerclass
public class ComparableSP implements Comparator<SinacorPortfolio>{
@Override
public int compare(SinacorPortfolio o1, SinacorPortfolio o2) {
//
return 0;
}
}
.
.
.
//populei minha lista
for (SinacorPortfolio sp : portfolios) {
portfoliosViewDefault.add(sp);
}
// e agora eu tenho que ordena-la por id
//entao agora estou pensando nisso...
ComparableSP c = new ComparableSP();
Collections.sort(portfoliosViewDefault, c);
}