Olá, galerinha!
Beleza?
Estou com uma dúvida acerca de Enums…
Criei alguns enums aqui:
enum Guerreiro { FORCA, CONSTITUICAO, DESTREZA, SABEDORIA, INTELIGENCIA, CARISMA};
enum Ladino { DESTREZA, INTELIGENCIA, CONSTITUICAO, CARISMA, SABEDORIA, FORCA};
enum Mago { INTELIGENCIA, CONSTITUICAO, DESTREZA, SABEDORIA, CARISMA, FORCA};
Como podem perceber, cada um possui uma ordem na qual os atributos devem ser colocado, por ordem de importância.
Legal, daí eu vou lá e gero os atributos:
List<Integer> atributos = new ArrayList<Integer>();
Random random = new Random();
int valor;
for (int I = 0; I < 6; ++I) {
do { valor = random.nextInt(18); } while (valor < 10);
atributos.add(valor);
}
Collections.sort(atributos);
Beleza…
Agora, eis a questão:
São seis atributos. Eu quero que pegue valor por valor da minha lista e jogue em cada posição do Enum.
Por exemplo:
Eu escolhi guerreiro. Os valores gerados foram 18/16/16/14/12/10.
Então, no final, o enum teria que estar da seguinte maneira:
enum Guerreiro { FORCA = 18,
CONSTITUICAO = 16,
DESTREZA = 16,
SABEDORIA = 14,
INTELIGENCIA = 12,
CARISMA = 10};
Pois eu usaria esses valores dessa maneira, futuramente.
Eu escolhi Ladino agora. Os valores gerados foram os mesmos.
Então, o certo seria:
enum Ladino{ DESTREZA = 18,
INTELIGENCIA = 16,
CONSTITUICAO = 16,
CARISMA = 14,
SABEDORIA = 12,
FORCA = 10};
Como fazer para colocar cada valor da minha List em cada posição do meu Enum, fazendo isso em um loop, sem precisar de Ladino.Destreza = 18; , por exemplo?
Desde já, grato pela ajuda!