Java随机集合

23

是否存在一种Java集合,其获取元素的顺序是随机的?例如,我将整数1、2、3放入集合中,当我尝试打印它们时,结果可以是"1 2 3"、"3 2 1"或"1 3 2"吗?

4个回答

52

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

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

5
这是一个可能需要使用ArrayList的案例——从算法描述中可以看出你需要快速随机访问。 - Kathy Van Stone

5

将普通集合进行洗牌,然后以常规方式迭代。

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


1
你的第一个回答让我感到困惑,因为我不了解java.util.Collections。你知道,我是个新手。 - Sefler

2

只需对集合进行洗牌

如果集合必须保持有序,您可以访问随机索引的元素,但是您必须跟踪已使用过的元素(也许取决于您的应用程序),这可能非常低效。 如果内存不是问题,更好的解决方案是制作副本并对其进行洗牌。


1

我不知道有没有这样的功能。你可以把值放在一个列表中,然后使用Collections.shuffle将值随机排序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接