我正在制作一款游戏,它会在java中提出不同的问题。问题存储在一些arraylist中。 我的问题是这些问题不应该重复。如果问了所有问题,那么程序应该停止。我用过java随机函数。但它失败了。任何帮助都会很明显 此致
答案 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包含元素,将一个随机元素拉出然后从列表中删除它就会循环。
编辑以澄清 - 这可确保您不会获得重复