Problemas ordenando campos diferentes

4 respostas
rodrigo.mangue

Olá pessoal,

Tenho uma classe que, além de outros atributos, possui dois campos String(dataAbertura e dataFechamento). Em um determinado momento na minha aplicação preciso ordenar uma Collection de objetos desta classa pela dataAbertura e em outro pela dataFechamento. Não sei se entendi direito, mas implementando o método compareTo dentro desta classe, eu tenho que definir um atributo fixo para ordená-la? Em caso afirmativo, como faria para ordenar pelo outro campo? Não sei como resolver o impasse. Se alguém puder me ajudar, agradeço desde já…

4 Respostas

pintofree

bem o erro q notei é que vc quer ordenar pela data, porem esta salvando as datas em string, a ordenação por string é diferente q a por data, transforme seus campos de data em data.

ex de erro. string2 15/05/05, string2 20/05/98
, aki a string 2 é maior pois começa com 2. se fosse em datas a string 1 seria maior

rodrigo.mangue

Entendi, amigo, vou fazer a mudança. Mas o meu problema maior é que eu não sei como fazer para ordenar, ora por um atributo, ora por outro, usando Comparable e implementando o método compareTo. Na verdade, nem sei se é possível… Mesmo assim agradeço…

nbluis

Existem dois métodos sort na classe java.util.Collections.

Um deles recebe a lista de objetos. (usa o compareTo do objeto em questão)

E outro recebe uma lista e um comparator.
Logo é só tu implementar um comparator (possivelmente anonimo) para fazer quantas comparações tu quiser.

rodrigo.mangue

Valeu nbluis, acho que era isso que eu precisava. Vou tentar e depois posto o resultado.

Criado 24 de abril de 2008
Ultima resposta 24 de abr. de 2008
Respostas 4
Participantes 3