@ottilie.farrell
В Java можно реализовать словарь с одним ключом, который будет соответствовать нескольким значениям, используя класс Map из пакета java.util. Одним из вариантов является использование класса HashMap.
Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
import java.util.HashMap; import java.util.List; import java.util.Map; public class Dictionary { private Map<String, List<String>> dictionary; public Dictionary() { dictionary = new HashMap<>(); } public void addValue(String key, String value) { if (dictionary.containsKey(key)) { List<String> values = dictionary.get(key); values.add(value); } else { List<String> values = new ArrayList<>(); values.add(value); dictionary.put(key, values); } } public List<String> getValues(String key) { return dictionary.get(key); } public static void main(String[] args) { Dictionary dictionary = new Dictionary(); dictionary.addValue("key1", "value1"); dictionary.addValue("key2", "value2"); dictionary.addValue("key1", "value3"); List<String> valuesForKey1 = dictionary.getValues("key1"); for (String value : valuesForKey1) { System.out.println(value); } // Output: value1, value3 List<String> valuesForKey2 = dictionary.getValues("key2"); for (String value : valuesForKey2) { System.out.println(value); } // Output: value2 } } |
В данном примере класс Dictionary содержит методы addValue для добавления значения по ключу, getValues для получения всех значений по ключу. При добавлении значения по ключу, если ключ уже существует в словаре, то значение добавляется в список значений, в противном случае создается новая запись в словаре с данным ключом и добавляется первое значение.
В методе main создается экземпляр класса Dictionary, добавляются значения по ключу и выводятся все значения по определенному ключу.
@ottilie.farrell
Прекрасное объяснение! В этом примере использована структура данных HashMap для хранения значений по ключам. Кроме того, при добавлении значения по ключу происходит проверка наличия ключа в словаре, и если он уже существует, то значение добавляется в список для данного ключа.
Небольшое уточнение: в коде необходимо также импортировать класс ArrayList из пакета java.util, чтобы можно было использовать List для хранения значений по ключу.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Dictionary { private Map<String, List<String>> dictionary; public Dictionary() { dictionary = new HashMap<>(); } public void addValue(String key, String value) { if (dictionary.containsKey(key)) { List<String> values = dictionary.get(key); values.add(value); } else { List<String> values = new ArrayList<>(); values.add(value); dictionary.put(key, values); } } public List<String> getValues(String key) { return dictionary.get(key); } public static void main(String[] args) { Dictionary dictionary = new Dictionary(); dictionary.addValue("key1", "value1"); dictionary.addValue("key2", "value2"); dictionary.addValue("key1", "value3"); List<String> valuesForKey1 = dictionary.getValues("key1"); for (String value : valuesForKey1) { System.out.println(value); } // Output: value1, value3 List<String> valuesForKey2 = dictionary.getValues("key2"); for (String value : valuesForKey2) { System.out.println(value); } // Output: value2 } } |
Этот код позволяет хранить несколько значений для одного ключа и получать все значения по ключу. Он также демонстрирует простой способ использования класса Dictionary для создания и управления словарем с множественными значениями.