Вы не можете вставить значения в ArrayList
таким образом, вам нужно сначала инициализировать их, а затем использовать add
. Вы можете использовать computeIfAbsent
для этого
public void addToList(HashMap<String, ArrayList<String>> phonebook, String key, String value) {
phonebook.computeIfAbsent(key, k -> new ArrayList<>()).add(value);
}
HashMap<String, ArrayList<String>> phonebook = new HashMap<>();
addToList(phonebook, "Mike", "123");
addToList(phonebook, "Mike", "321");
Чтобы получить все значения, используйте get()
, чтобы получить список
System.out.print(phonebook.get("Mike")); // [123, 321]
Или
for (String number: phonebook.get("Mike")) {
System.out.println(number);
}
И чтобы получить все значения на карте
for (String key: phonebook.keySet()) {
System.out.println(key + ": ");
for (String number: phonebook.get(key)) {
System.out.println(number);
}
}