Я бы порекомендовал создать специальный класс для хранения вопроса и ответа, сохранить их в List
и использовать Collections.shuffle
для перемешивания вопросов.
Использование shuffle
предлагает гораздо более равномерное распределение вопросов при каждом запуске приложения по сравнению с положением, в котором HashMap
хранит вопросы внутри (что, скорее всего, будет таким же для данной реализации JVM). 1009 *
Кроме того, инкапсуляция вопроса и ответа лучше с точки зрения ОО ИМО.
public class Question {
private final String question;
private final int answer;
public Question(String question, int answer) {
this.question = question;
this.answer = answer;
}
public String getQuestion() { return question; }
public int getAnswer() { return answer; }
}
Затем заполните список вопросов, перемешайте и итерируйте:
// Use ArrayList as it supports random access for efficient element swapping:
List<Question> questions = new ArrayList<Question>();
questions.add(new Question("3 * 19", 57));
// etc.
Collections.shuffle(questions);
for (Question qn : questions) {
System.out.println(qn.getQuestion());
// Prompt for answer, etc.
}