Как правильно в java реализовать словарь: "ключ" : "n-значений"?
Подскажите, пожалуйста, каким образом можно создать словарь, который будет записывать в ключ, по мере вхождения информации, значения в n количестве.
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Как указано в комментарии, достаточно использовать мапу, в которой для каждого ключа будет храниться коллекция значений (список List или множество Set):
Map<K, List<V>> mapOfLists = new HashMap<>();
Map<K, Set<V>> mapOfSets = new LinkedHashMap<>();
Для добавления в такую коллекцию можно использовать метод Map::computeIfAbsent, в котором при необходимости будет создана новая коллекция значений для отсутствующего ключа, в которую сразу можно будет добавить значение:
public static addValue(Key key, Value value) {
mapOfLists.computeIfAbsent(key, (k) -> new ArrayList<>()).add(value);
mapOfSets.computeIfAbsent(key, (k) -> new HashSet<>()).add(value);
}