Подтвердить что ты не робот

Java, Как добавить значения в список массивов, используемый как значение в HashMap

У меня есть HashMap<String, ArrayList<String>>, называемый examList. Я хочу использовать его для того, чтобы сохранить оценки каждого курса, на котором человек посещает. Таким образом, ключ для этого HashMap равен couresID, а значение равно ArrayList всех оценок (попыток сдачи экзамена), которые этот человек сделал.

Проблема заключается в том, что я знаю, как работать с списками массивов и хэш-картами обычно, но я не уверен, как начать с этого примера. Итак, как бы я, или пример, добавить что-то в ArrayList внутри HashMap?

4b9b3361

Ответ 1

Вы можете использовать библиотеку Google Guava, которая имеет реализации для Multi-Value-Maps (коллекции Apache Commons также реализуются, но без генериков).

Однако, если вы не хотите использовать внешнюю библиотеку lib, то вы сделали бы что-то вроде этого:

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.

Ответ 2

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

Надеюсь, это поможет!

Ответ 3

  • Сначала создайте HashMap.

    HashMap > mapList = new HashMap > ();

  • Получите значение от HashMap против вашего ключа ввода.

    ArrayList arrayList = mapList.get(ключ);

  • Добавить значение в arraylist.

    arrayList.add(AddValue);

  • Затем снова поставьте arraylist против этого значения ключа. mapList.put(ключ, ArrayList);

Он будет работать.....

Ответ 4

Сначала вы возвращаете значение (с учетом ключа), а затем добавляете к нему новый элемент

    ArrayList<String> grades = examList.get(courseId);
    grades.add(aGrade);

Ответ 5

Сначала вам нужно найти правильный ArrayList в HashMap:

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

Затем добавьте новый класс в ArrayList:

myAList.add(newGrade)