Как правильно в java реализовать словарь: "ключ" : "n-значений"?

Рейтинг: 0Ответов: 1Опубликовано: 22.01.2023

Подскажите, пожалуйста, каким образом можно создать словарь, который будет записывать в ключ, по мере вхождения информации, значения в n количестве.

Ответы

▲ 2

Как указано в комментарии, достаточно использовать мапу, в которой для каждого ключа будет храниться коллекция значений (список 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);
}