是否存在一种Java集合,其获取元素的顺序是随机的?例如,我将整数1、2、3放入集合中,当我尝试打印它们时,结果可以是"1 2 3"、"3 2 1"或"1 3 2"吗?
是否存在一种Java集合,其获取元素的顺序是随机的?例如,我将整数1、2、3放入集合中,当我尝试打印它们时,结果可以是"1 2 3"、"3 2 1"或"1 3 2"吗?
如果你只是想要一个随机序列,你可以使用Collections.shuffle。
List<Integer> list = new LinkedList();
//Add elements to list
Collections.shuffle(list);
将普通集合进行洗牌,然后以常规方式迭代。
您可以使用java.util.Collections.shuffle(List<T>)
进行洗牌。
只需对集合进行洗牌。
如果集合必须保持有序,您可以访问随机索引的元素,但是您必须跟踪已使用过的元素(也许取决于您的应用程序),这可能非常低效。 如果内存不是问题,更好的解决方案是制作副本并对其进行洗牌。
我不知道有没有这样的功能。你可以把值放在一个列表中,然后使用Collections.shuffle将值随机排序。
ArrayList
的案例——从算法描述中可以看出你需要快速随机访问。 - Kathy Van Stone