У меня проблема, вероятно, из-за моей неопытности в отношении HashMaps. По сути, у меня есть класс, который содержит две переменные HashMap:
private Map <String, List<String>> definiciones = new <String, List<String>> HashMap();
private Map <String, List<String>> sinonimos = new <String, List<String>> HashMap();
Они хранят строки в своих списках, когда я вызываю их соответствующие функции. Проблема в том, что, например, когда я добавляю строку в список внутри карты определений, она также каким-то образом появляется в sinonimos.
public void agregarDefinicionAPalabra(String palabra, String definicion) throws PalabraInvalida {
System.out.println(definiciones.get(palabra).size());
if(definicion.equals("")) {
JOptionPane.showMessageDialog(null, "La definición no puede estar vacía");
throw new PalabraInvalida("La definición no puede estar vacía");
}
if (definiciones.containsKey(palabra)) {
definiciones.get(palabra).add(definicion);
} else {
throw new PalabraInvalida("No se ha encontrado la palabra solicitada");
}
System.out.println(sinonimos.get(palabra).get(0));
}
Метод добавляет строку в список определений, как вы можете видеть , в конце я поставил оттиск, подтверждающий эту идею, которую только что написал. Действительно, когда я запускаю этот метод, список sinonimos получает добавленный мной элемент Definiciones. Очевидно, есть кое-что, чего я не знаю из-за моей неопытности в этом топи c, есть предложения?
Спасибо!