0

我正在制作一个游戏,它将在 java 中提出不同的问题。问题存储在一些数组列表中。我的问题是这些问题不应该重复。如果所有问题都被问过,那么程序应该停止。我用过java随机函数。但它失败了。任何帮助都将是可观的问候

4

2 回答 2

6

如果我正确理解您的问题,您希望以随机顺序显示问题。这个问题有一个简单的解决方案。使用该方法java.util.Collections.shuffle随机排列列表中的问题。然后从头开始遍历列表。该算法具有线性时间和空间复杂度。

于 2012-04-06T22:38:34.837 回答
0

将问题列表复制到临时列表中,以及

while(list.size() > 0){
     int i = Math.floor(Math.Random() * list.size());
     list.get(i); //do something with question
     list.remove(i);
}

只要列表有元素,此循环就会循环,将随机元素拉出,然后将其从列表中删除。


编辑澄清 - 这可以确保你不会得到重复

于 2012-04-06T22:41:06.617 回答