@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 для создания и управления словарем с множественными значениями.