在java中生成非重复随机数

时间:2012-04-06 22:34:20

标签: java

我正在制作一款游戏,它会在java中提出不同的问题。问题存储在一些arraylist中。 我的问题是这些问题不应该重复。如果问了所有问题,那么程序应该停止。我用过java随机函数。但它失败了。任何帮助都会很明显 此致

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

将问题列表复制到临时列表,

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

只要list包含元素,将一个随机元素拉出然后从列表中删除它就会循环。


编辑以澄清 - 这可确保您不会获得重复