Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1701 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Tableau indexé par un enum

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau indexé par un enum

n°1945672
leonhard
Posté le 29-11-2009 à 14:51:44  profilanswer
 

Bonjour
 
J'ai une question vraisemblablement stupide, mais certains ont peut-être une réponse intelligente a y apporter...
 
 
J'ai un enum définit comme suit:
 
 

Code :
  1. enum Monnaie{DIXCENTIMES, VINGTCENTIMES, CINQUANTECENTIMES, UNEURO, DEUXEURO, CINQEURO};
  2. ...
  3. int[] caisse = new int[Monnaie];


 
Mais bien entendu cette notation ne marche pas. Comment faire pour pouvoir ensuite écrire:
 

Code :
  1. caisse[DIXCENTIMES] = 25;                // Nombres de pièces de 10 centimes dans la caisse


 
Manifestement je suis sur une mauvaise voie, mais j'arrive pas à trouver qqchose qui fonctionne.
 
D'avance merci de votre aide

mood
Publicité
Posté le 29-11-2009 à 14:51:44  profilanswer
 

n°1945745
cbeyls
Hail to the King, Baby
Posté le 29-11-2009 à 23:03:02  profilanswer
 

Salut,
 
Si tu veux utiliser un tableau d'entiers, tu peux le faire comme ceci:
 

Code :
  1. enum Monnaie{DIXCENTIMES, VINGTCENTIMES, CINQUANTECENTIMES, UNEURO, DEUXEURO, CINQEURO};
  2.  
  3. int[] caisse = new int[Monnaie.values().length];
  4.  
  5. // Initialiser les caisses à 0
  6. for (Monnaie m : Monnaie.values()) {
  7.   caisse[m.ordinal()] = 0;
  8. }
  9.         
  10. caisse[Monnaie.DIXCENTIMES.ordinal()] = 25;


 
Si tu veux un code un peu plus propre et strict, tu peux utiliser une Map. Elle n'autorise pas à mettre un index sous forme d'entier arbitraire pour accéder à la donnée, on doit toujours passer la constante en paramètre.
 

Code :
  1. enum Monnaie{DIXCENTIMES, VINGTCENTIMES, CINQUANTECENTIMES, UNEURO, DEUXEURO, CINQEURO};
  2.  
  3. Map<Monnaie, Integer> caisse = new HashMap<Monnaie, Integer>();
  4.  
  5. // Initialiser toutes les caisses à 0
  6. for (Monnaie m : Monnaie.values()) {
  7.   caisse.put(m, 0);
  8. }
  9.  
  10. caisse.put(Monnaie.DIXCENTIMES, 25);



Message édité par cbeyls le 29-11-2009 à 23:16:12
n°1945788
leonhard
Posté le 30-11-2009 à 09:56:14  profilanswer
 

Merci pour ces deux solutions !
 
La deuxième est à mon humble avis nettement plus séduisante, mais je dois malheureusement utiliser la première.
 
Merci encore de ton aide !
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Tableau indexé par un enum

 

Sujets relatifs
[VBA] Remplir une table Access à partir d'un tableauj'ai besoin de faire un programm c++ utilisant enum et switch .
Probleme d'espace autour des images dans tableau...
{C++} Tableau de structurevb excel - MAJ un tableau
Cacher/Faire apparaitre dynamiquement une ligne dans un tableau[RESOLU]Plusieurs requetes SQL en une seul sous forme de tableau
update mysql par lignes d'un tableauProblèmes avec un tableau à 2 dimensions
Plus de sujets relatifs à : Tableau indexé par un enum


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)