我所拥有的是名为HashMap<String, ArrayList<String>>
的{{1}}。我想用它来保存一个人参加的每门课程的成绩。因此examList
HashMap
的关键是couresID
,其价值是此人所有等级(考试尝试次数)的ArrayList
。
问题是我知道如何正常使用数组列表和哈希映射,但我不知道如何开始使用这个例子。那么我如何在ArrayList
内向HashMap
添加内容?
答案 0 :(得分:36)
您可以使用Google Guava库,它具有Multi-Value-Maps的实现(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.
答案 1 :(得分:7)
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);
希望这有帮助!
答案 2 :(得分:4)
首先创建HashMap。
的HashMap&GT; mapList = new HashMap&gt;();
根据输入密钥从HashMap获取值。
ArrayList arrayList = mapList.get(key);
为arraylist添加值。
arrayList.add(创值);
然后再将arraylist放在该键值上。 mapList.put(键,ArrayList的);
它会起作用.....
答案 3 :(得分:3)
首先检索值(给定一个键),然后向其中添加一个新元素
ArrayList<String> grades = examList.get(courseId);
grades.add(aGrade);
答案 4 :(得分:2)
首先,您必须在ArrayList
中查找正确的HashMap
:
ArrayList<String> myAList = theHashMap.get(courseID)
然后,将新成绩添加到ArrayList
:
myAList.add(newGrade)
答案 5 :(得分:0)
Java 8+具有 computeIfAbsent
sample<-" 2018 summer California Valencia orange"
sub("[O|o]range.*","",sample)
[1] " 2018 summer California Valencia "