web-dev-qa-db-ja.com

Java、HashMapで値として使用される配列リストに値を追加する方法

私が持っているのはHashMap<String, ArrayList<String>>examListと呼ばれます。私が使用したいのは、人が参加している各コースの成績を保存することです。したがって、このHashMapのキーはcouresIDであり、値はこの人が行ったすべての成績(試験試行)のArrayListです。

問題は、配列リストとハッシュマップを正常に操作する方法を知っていることですが、この例から始める方法すらわかりません。それでは、たとえば、ArrayList内のHashMapに何かを追加するにはどうすればよいでしょうか。

19
vedran

Multi-Value-Mapsの実装を持つGoogle Guavaライブラリを使用することもできます(Apache Commons Collectionsにも実装がありますが、ジェネリックはありません)。

ただし、外部ライブラリを使用したくない場合は、次のようにします。

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);

お役に立てれば!

7
Mechkov
  • 最初にHashMapを作成します。

    HashMap> mapList = new HashMap>();

  • 入力キーに対してHashMapから値を取得します。

    ArrayList arrayList = mapList.get(key);

  • Arraylistに値を追加します。

    arrayList.add(addvalue);

  • 次に、そのキー値に対してarraylistを再度配置します。 mapList.put(key、arrayList);

それが動作します.....

4
Chetan

最初に値を取得し(キーを指定)、新しい要素を追加します

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

最初に、ArrayListで正しいHashMapを検索する必要があります。

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

次に、ArrayListに新しいグレードを追加します。

myAList.add(newGrade)
2
Matt Fenwick