2009-06-09 133 views
18

我的抓取顺序是不是随机的一种Java集合?例如,我把整数1,2,3放入集合中,当我尝试打印它们时,所有结果可以是“1 2 3”,“3 2 1”或“1 3 2”?Java随机集合

回答

43

如果你只是想要一个随机序列可以使用Collections.shuffle

List<Integer> list = new LinkedList(); 
    //Add elements to list 
    Collections.shuffle(list); 
+5

这是您可能想要使用`ArrayList`的一种情况 - 来自您想要快速随机访问的算法的描述。 – 2009-06-09 15:24:54

5

采取一个正常的收集和洗牌,然后以正常的方式迭代它。

您可以使用java.util.Collections.shuffle(List<T>)来进行洗牌。

+1

那么,你的第一个答案困惑了我,因为我不知道java.util.Collections。你知道,我是个新人。 – Sefler 2009-06-09 12:03:48

2

只是shuffle集合。

如果集合必须留在为了你可以访问随机指数的元素,但你必须保持跟踪你(也许,这取决于你的应用程序)以前用过的人,而这可能是非常效率低下。如果内存不是障碍,一个更好的解决方案就是制作一个副本并随机播放。

1

不是我所知道的。您始终可以将值放入列表中,并使用Collections.shuffle将值放入随机顺序中。