Estou com um problema de ordenação no qual eu tenho um conjunto objeto que contem uma data e devo ordená-los por ela… porém eu só encontrei a classe java.util.Arrays, porém o exemplo dela não me foi muito claro. Alguém por algum acaso teria algum exemplo para me mostrar?
Bom, a classe Arrays é bem simples, o metodo “sort” recebe um array de objects e um comparator, só implementar este, por exmplo:
Comparator<Date> firstDate = new Comparator<Date>(){
public int compare(Date d1, Date d2){
if(d1.equals(d2)) return 0;
if(d1.before(d2)) return -1;
return 1;
}
};
E passe o seu array de dates, e o comparetor para o Arrays.sort, ele ordena pra vc o seu array…
R
riqueneilPJ
Bruno,
obrigado por me exclarecer a minha dúvida, porém estou com outro problema agora… eu já tenho isso td armazenado em um objeto java.util.Vector. Não existe outra maneira para organizar isso?
Caso eu faça desse jeito eu posso perder em performanace caso eu tenha um número mto grande de itens em meu vetor…
[]'s
B
BrunoCarloPJ
Ola,
Bom, pra vc transforma o seu Vector em array é simples… na interface List, que o vector implementa tem o método “toArray(Object[])”, e pra voltar é
E outro detalhe: a implementação do método compare, do comparador, deve comparar os SEUS objetos, e não datas. Você vai ordenar dois objetos seus baseados na data deles, e não duas datas.
Eu supus que sua classe tem um método getData(), pra obter a data que você quer comparar. Ajuste para o seu código, se necessário.
Até mais,
R
riqueneilPJ
Cristian,
a sua idéia foi muito boa, porém reparei que o link que vc me enviou é da versão 5 do java e eu estou preso a versão 1.4 :???:
Bruno,
era realmente oq eu imaginava, que fosse perder em performance, porém eu não vejo outra saída, a não ser que ao invés de coloca-lo em vetores eu passe para um array diretamente e depois de ordenado eu coloque no vetor.
Vou ver oq eu faço por aqui… Obrigado pela ajuda de vcs…
[]'s
C
CD1PJ
Olá
Se o problema é o link, aqui está o link do método sort do J2SE 1.4.2! O método também existe, a única diferença é que você não pode usar generics (esses < e > no código). É só tirar os <> (e os valores dentro deles, claro) que o código funciona no 1.4.2.
Até mais,
B
BrunoCarloPJ
Ola,
Só uma, que pode te ajudar na performace, a sua coleção tem que ser o Vector, não pode ser o ArrayList, pq o Vector é sincronizado, muito usado para resolver problemas de concorrencia, e isto perde em performace…
“riqueneil”:
Cristian,
a sua idéia foi muito boa, porém reparei que o link que vc me enviou é da versão 5 do java e eu estou preso a versão 1.4 :???:
Bruno,
era realmente oq eu imaginava, que fosse perder em performance, porém eu não vejo outra saída, a não ser que ao invés de coloca-lo em vetores eu passe para um array diretamente e depois de ordenado eu coloque no vetor.
Vou ver oq eu faço por aqui… Obrigado pela ajuda de vcs…
[]'s
R
riqueneilPJ
Olá pessoal!
estou vendo que vou ter que fazer dessa forma mesmo… estou pensando muito em performance…
bem, vamos ver que bicho dá… qq coisa eu volto aqui… heheheh