Caro amigo.
Estou tendo um pequeno problema para ordenar alfabeticamente a minha classe Cidade.
O seguinte código foi implementado por mim:
public List<Cidade> getMunicipios(Long filiadoAssociadoId) {
FiliadoAssociado filiadoAssociado = (FiliadoAssociado) createCriteria(FiliadoAssociado.class).add(Restrictions.eq(“id”, filiadoAssociadoId)).uniqueResult();
List<Cidade> cidades = new ArrayList();
if (filiadoAssociado.getExtensoesDeBase() != null) {
cidades.addAll(filiadoAssociado.getExtensoesDeBase());
}
cidades.add(filiadoAssociado.getEndereco().getCidade());
Collections.sort(cidades);
return cidades;
}
O resultado sendo visto num select em HTML é justamente o incorreto, ou seja, não houve a ordenação correta.
Na classe Cidade.java esta implementado Comparable<Cidade> e também o método compareTo da seguinte forma:
public int compareTo(Cidade cidade) {
/*
if (this.nome.compareTo(cidade.nome) < 0) {
return -1;
} else if (this.nome.compareTo(cidade.nome) > 0) {
return 1;
} else {
return 0;
}
*/
return this.nome.compareTo(cidade.nome);
}
O que devo fazer para ter o resultado correto ?
Deveria utilizar o SortedSet + TreeSet ao invéz do List + ArrayList ?
Muito grato