【问题标题】:Java random collectionJava 随机集合
【发布时间】:2009-06-09 11:47:18
【问题描述】:

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

【问题讨论】:

    标签: java


    【解决方案1】:

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

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

    【讨论】:

    • 这是您可能想要使用ArrayList 的一种情况——从您想要快速随机访问的算法的描述中。
    【解决方案2】:

    获取一个普通的集合并打乱它,然后以普通的方式对其进行迭代。

    您可以使用java.util.Collections.shuffle(List&lt;T&gt;) 进行洗牌。

    【讨论】:

    • 好吧,你的第一个答案让我很困惑,因为我不知道 java.util.Collections。你知道,我是个新人。
    【解决方案3】:

    只需shuffle 收藏。

    如果集合必须保持有序,您可以访问随机索引处的元素,但是您必须跟踪您以前使用过的元素(也许,这取决于您的应用程序),并且这可能非常低效。如果内存没有障碍,更好的解决方案是复制并随机播放。

    【讨论】:

      【解决方案4】:

      我不知道。您总是可以将这些值放在一个列表中,然后使用 Collections.shuffle 将这些值随机排列。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-19
        • 2013-01-31
        • 2019-10-29
        • 2011-01-27
        相关资源
        最近更新 更多