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