Enum

Fala ai galera seguinte
Estou trabalhando com ENUM, não sei se é a maneira mas correta de se fazer isso, e estou fazendo o seguinte.
preciso colocar uns caras em uma determinada ordem para isso criei uns indices


public EnumExemplo(){

  EX_UM(0,"XXXXXX"),
  EX_DOIS(1,"GGGGG"),
  EX_TRES(2,"AAAAA");

  private int indice;
  private String descricao;

  EnumExemplo(int indice,String descricao){
        this.indice = indice;
        this.descricao = descricao;
  }
 
   getsss....setsss...

}

bom assim funciona blz…
mas eu queria saber se existe como , alguma classe que eu utilize este enum , passar um indice para o enum e ele me reponder a descrição
pois estou utilizando o indice para setar dentro de um SortedMap assim ele consegue ondenar como eu quero respeitando a ondem crescente do indice.
mas para exibir na tela quero colocar a descrição e não queria fazer uma metodo assim


if(indice = Enum.EX_UM.getIndice){
  return Enum.EX_UM.getDescricao;
}

bom a duvida é essa…

Você pode utilizar o método values do enum. Ele retorna um array com todos os dados do enum.
Assim você pode pegar pelo índice do array.

Não precisa do indice, vc pode usar o método ordinal().

[code]public EnumExemplo(){

EX_UM(0,“XXXXXX”),
EX_DOIS(1,“GGGGG”),
EX_TRES(2,“AAAAA”);

private int indice;
private String descricao;

EnumExemplo(int indice,String descricao){
this.indice = indice;
this.descricao = descricao;
}

public static EnumExemplo porIndice(int indice) {
for (EnumExemplo ee : EnumExemplo.values()) {
if (ee.getIndice() == indice) {
return ee;
}
}
throw new IllegalArgumentException("Indice não encontrado: " + indice);
}
} [/code]
E aí:

String descr = EnumExemplo.porIndice(1).getDescricao();