Manipulation d'un hashtable [Résolu/Fermé]

Signaler
-
Messages postés
16366
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
22 juin 2021
-
Bonjour,
J'ai crée un programme pour modéliser une classe d'étudiant. Chaque étudiant est caractérisé par son numEtudiant,nom,prenom,age et note. J'ai crée une variable statique de type hashtable pour y stocker les info de tous les étudiants sous la forme {'nomEtudiant1':L1,'nomEtudiant2':L2,etc} tq L c'est une Arraylist de la forme [nom,prenom,age,note]. Le probleme que j'ai c'est au niveau du Setter d'âge et de note
public void setAge(int age) {
  if (age<=24) {
   this.age = age;
   ((ArrayList)(dico_etudiants.get(numEtudiant))).set(2,age);
  }
  else
   System.out.println("L'étudiant "+nom+" "+prenom+" n'est pas accepté,il depasse l'âge réglementaire.");
  
 }
 public double getNote() {
  return note;
 }
 public void setNote(double note) {
  if (note>=0&¬e<=20) {
   this.note = note;
   ((ArrayList)(dico_etudiants.get(numEtudiant))).set(3,note);
   
  }
  else
   System.out.println("La note saisie de l'étudiant "+nom+" "+prenom+" est incorrecte.");

le compilateur ne m'affiche aucune erreur mais lors de l'éxecution si.
Qui a une idée sur ce qui me manque ici svp

1 réponse

Messages postés
16366
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
22 juin 2021
2 848
Bonjour,

Pour commencer, Hashtable ne devrait plus être utilisé, il faut utiliser soit HashMap soit une ConcurrentHashMap si tu as besoin de gérer plusieurs threads (voir la documentation de Hashtable)

Ensuite tu ne paramètres pas tes ArrayList, alors j'imagines que tu n'as pas paramétré non plus ton Hashtable, sinon tu n'aurais pas besoin de faire des cast à chaque ligne...

Enfin, tu parles d'une erreur à l'exécution, mais tu ne dis pas laquelle !
Il faudrait être plus précis.