【发布时间】:2009-06-09 11:47:18
【问题描述】:
有没有一种 Java 集合,我的获取顺序是随机的?例如,我将整数 1、2、3 放入集合中,当我尝试打印它们时,所有结果都可能是“1 2 3”、“3 2 1”或“1 3 2”?
【问题讨论】:
标签: java
有没有一种 Java 集合,我的获取顺序是随机的?例如,我将整数 1、2、3 放入集合中,当我尝试打印它们时,所有结果都可能是“1 2 3”、“3 2 1”或“1 3 2”?
【问题讨论】:
标签: java
如果你只想要一个随机序列,你可以使用 Collections.shuffle
List<Integer> list = new LinkedList();
//Add elements to list
Collections.shuffle(list);
【讨论】:
ArrayList 的一种情况——从您想要快速随机访问的算法的描述中。
获取一个普通的集合并打乱它,然后以普通的方式对其进行迭代。
您可以使用java.util.Collections.shuffle(List<T>) 进行洗牌。
【讨论】:
只需shuffle 收藏。
如果集合必须保持有序,您可以访问随机索引处的元素,但是您必须跟踪您以前使用过的元素(也许,这取决于您的应用程序),并且这可能非常低效。如果内存没有障碍,更好的解决方案是复制并随机播放。
【讨论】:
我不知道。您总是可以将这些值放在一个列表中,然后使用 Collections.shuffle 将这些值随机排列。
【讨论】: