Java,如何将值添加到在HashMap中用作值的Array List中

时间:2011-11-01 16:06:51

标签: java arraylist hashmap

我所拥有的是名为HashMap<String, ArrayList<String>>的{​​{1}}。我想用它来保存一个人参加的每门课程的成绩。因此examList HashMap的关键是couresID,其价值是此人所有等级(考试尝试次数)的ArrayList

问题是我知道如何正常使用数组列表和哈希映射,但我不知道如何开始使用这个例子。那么我如何在ArrayList内向HashMap添加内容?

6 个答案:

答案 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 "

https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#computeIfAbsent-K-java.util.function.Function-