web-dev-qa-db-fra.com

Java, Comment ajouter des valeurs à la liste de tableaux utilisée comme valeur dans HashMap

Ce que j'ai est un HashMap<String, ArrayList<String>> appelé examList. Ce que je veux l'utiliser, c'est d'enregistrer les notes de chaque cours suivi par une personne. Donc, la clé pour ce HashMap est couresID, et la valeur est un ArrayList de toutes les notes (tentatives d'examen) que cette personne a faites.

Le problème est que je sais comment travailler avec les listes de tableaux et les hashmaps normalement, mais je ne sais même pas comment commencer avec cet exemple. Alors, comment pourrais-je, ou un exemple, ajouter quelque chose à ArrayList dans HashMap?

19
vedran

Vous pouvez soit utiliser la bibliothèque Google Guava, qui a des implémentations pour Multi-Value-Maps (Apache Commons Collections a également des implémentations, mais sans génériques).

Cependant, si vous ne souhaitez pas utiliser une bibliothèque externe, vous feriez quelque chose comme ceci:

if (map.get(id) == null) { //gets the value for an id)
    map.put(id, new ArrayList<String>()); //no ArrayList assigned, create new ArrayList

map.get(id).add(value); //adds value to list.
36
dunni
String courseID = "Comp-101";
List<String> scores = new ArrayList<String> ();
scores.add("100");
scores.add("90");
scores.add("80");
scores.add("97");

Map<String, ArrayList<String>> myMap = new HashMap<String, ArrayList<String>>();
myMap.put(courseID, scores);

J'espère que cela t'aides!

7
Mechkov
  • Créez d'abord HashMap.

    HashMap> mapList = new HashMap> ();

  • Obtenez de la valeur de HashMap par rapport à votre clé d'entrée.

    ArrayList arrayList = mapList.get (clé);

  • Ajoutez de la valeur à l'arraylist.

    arrayList.add (addvalue);

  • Ensuite, mettez arraylist contre cette valeur clé. mapList.put (clé, arrayList);

Ça va marcher.....

4
Chetan

Vous récupérez d'abord la valeur (avec une clé) puis vous y ajoutez un nouvel élément

    ArrayList<String> grades = examList.get(courseId);
    grades.add(aGrade);
3
Óscar López

Tout d'abord, vous devez rechercher le ArrayList correct dans le HashMap:

ArrayList<String> myAList = theHashMap.get(courseID)

Ensuite, ajoutez la nouvelle note au ArrayList:

myAList.add(newGrade)
2
Matt Fenwick