Tenho uma TreeSet que contém alguns “VOs”, que já popuplado do banco :
arquivo = getArquivoImportacaoFacade().selectAllArquivos();
Set<ArquivoVO>arquivos = new TreeSet<ArquivoVO>();
for(ArquivoVO user: arquivo) {
arquivos.add(user);
}
Ele me ordena automaticamente pelo nome, queria alterar a ordenação para o ID ( sequencial), alguém saberia como faço isso ?
Desde já agradeço !
pmlm
#2
O teu VO tem de implementar a interface Comparable e depois implementas o método compareTo como pretendes.
class Produto {
public String nome;
public String descricao;
}
SortedSet<Produto> ordenadoPorNome = new TreeSet<Produto>(new Comparator<Produto> () {
public int compare (Produto p1, Produto p2) {
return p1.nome.compareTo (p2.nome);
}
});
SortedSet<Produto> ordenadoPorDescricao = new TreeSet<Produto>(new Comparator<Produto> () {
public int compare (Produto p1, Produto p2) {
return p1.descricao.compareTo (p2.descricao);
}
});
Obrigado a todos, usei da seguinte forma :
public class ArquivoVO implements Serializable, Comparable<ArquivoVO>
@Override
public int compareTo(ArquivoVO arquivo) {
if (this.getOrdem() == null){
return this.getOrdemPadrao().compareTo(arquivo.getOrdemPadrao());
}else {
return this.getOrdem().compareTo(arquivo.getOrdem());
}
}