私が持っているのはHashMap<String, ArrayList<String>>
はexamList
と呼ばれます。私が使用したいのは、人が参加している各コースの成績を保存することです。したがって、このHashMap
のキーはcouresID
であり、値はこの人が行ったすべての成績(試験試行)のArrayList
です。
問題は、配列リストとハッシュマップを正常に操作する方法を知っていることですが、この例から始める方法すらわかりません。それでは、たとえば、ArrayList
内のHashMap
に何かを追加するにはどうすればよいでしょうか。
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.
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);
お役に立てれば!
最初にHashMapを作成します。
HashMap> mapList = new HashMap>();
入力キーに対してHashMapから値を取得します。
ArrayList arrayList = mapList.get(key);
Arraylistに値を追加します。
arrayList.add(addvalue);
次に、そのキー値に対してarraylistを再度配置します。 mapList.put(key、arrayList);
それが動作します.....
最初に値を取得し(キーを指定)、新しい要素を追加します
ArrayList<String> grades = examList.get(courseId);
grades.add(aGrade);
最初に、ArrayList
で正しいHashMap
を検索する必要があります。
ArrayList<String> myAList = theHashMap.get(courseID)
次に、ArrayList
に新しいグレードを追加します。
myAList.add(newGrade)