Я новичок в Java-программировании на Android, и у меня возникают проблемы с повторением моих вопросов Викторины (всего 50 вопросов). Мои вопросы и ответы добавляются на карту. Затем я вызываю свой метод setQuestion (), чтобы отобразить мои вопросы и ответы, которые работают отлично.
Map<String, String> userQuestions = new HashMap<String, String>();
int questionNumber = 1;
//all my questions go here
setQuestion();
}
public void setQuestion()
{
Random randomQuestions = new Random();
List questions = new ArrayList<>();
List repeatedQuestions = new ArrayList<>();
for (int i = 0; i <questionNumber; i++)
{
while (true)
{
questionNumber = randomQuestions.nextInt(50) +1;
if (!questions.contains(randomQuestions))
{
repeatedQuestions.add(repeatedQuestions);
break;
}
}
}
}
Моя вторая попытка:
List<String> list = new ArrayList<String>(userQuestions.keySet());
Collections.shuffle(list, new Random(questionNumber));
Я попытался преобразовать мой HashMap в список, чтобы можно было использовать Collections.shuffle. К сожалению, это не мешает, и мои вопросы не в случайном порядке.
Моя третья попытка:
Random randomQuestions = new Random();
List<Integer> questions = new ArrayList<Integer>();
Integer questionNumber = randomQuestions.nextInt(50) + 1;
if (!questions.contains(questionNumber))
{
questions.add(questionNumber);
}
Это действительно рандомизирует мои вопросы, однако я все еще получаю дубликаты. Я действительно не понимаю, почему он не добавляет мой ранее названный номер вопроса?