У меня есть два HashMaps HashMap<String, String> verb
и HashMap<String, String> noun
.Мне нужно получить доступ к их ключам и значениям, используя пользовательский ввод, хранящийся в String name
.Как я могу получить доступ к HashMaps, чтобы мне не приходилось явно указывать имя HashMap в моем коде?
Предположим, пользователь создает HashMap<String, String> adjective
, метод должен обрабатывать HashMap, имя которого явно не указано вкод.Я думал попробовать что-то вроде name.get(question)
вместо noun.get(question)
или verb.get(question)
, но, очевидно, это невозможно.Я хочу сделать мой код более эффективным, чтобы пользователи могли получить доступ к HashMap, который не является «глаголом» или «существительным».
Я пытался просмотреть данные методы для строк, но ничего не подходит.Мне не очень повезло, и я нашел другие темы, которые решают эту проблему.
if(name.contains("verb")) {
for(String question: verb.keySet()) {
System.out.println(question);
reader = new Scanner(System.in);
hold = reader.nextLine();
if(hold.equals(verb.get(question))) {
System.out.println("CORRECT");
}
else {
System.out.println("INCORRECT");
}
}
}
else if(name.contains("noun")) {
for(String question : noun.keySet()) {
System.out.println(question);
hold = reader.nextLine();
if(hold.equals(noun.get(question))) {
System.out.println("CORRECT");
}
else {
System.out.println("INCORRECT");
}
}
}
else { System.out.println("not a set"); }
return "";
Прямо сейчас все печатается так, как ожидается для глагола и существительного.Клавиша печатается, другой пользовательский ввод, сохраненный в String hold
, сравнивается со значением, связанным с клавишей, и печатает, если он правильный или нет, перед переходом к следующей клавише в HashMap.