Mudar ordenação TreeSet ?[RESOLVIDO]

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 !

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());
		}
    }