从数组中选择一个随机值

Posted

技术标签:

【中文标题】从数组中选择一个随机值【英文标题】:Select a random value from an Array 【发布时间】:2012-02-21 17:46:12 【问题描述】:

我有一个数值数组,我想从该数组中随机选择一个值,然后将其插入到int 变量中。

我不确定您需要查看哪些代码。所以,

这是我用来生成 13 个数字 (1-13) 并将它们插入到数组中的 for 循环。

    int clubsArray []; 
    clubsArray = new int [13]; 

    for(int i = 0; i < clubsArray.length; i++)  

        clubsArray[i] = i +1; 

    

这很好,但现在我需要从该数组中选择例如 2 个随机值(然后将其插入到一个变量中以供以后使用。

我在许多网站上四处查看,我看到了类似 ArrayList&lt;String&gt; 的东西,以便将值插入到数组中,然后使用 Random generator = new Random() 从数组中选择值,然后使用 .remove() 删除它来自数组。但是,当我使用它时,它不起作用。

【问题讨论】:

您并没有真正“插入”到 int 变量中,而是“分配”给:) How to generate a random number with Java from given list of numbers的可能重复 【参考方案1】:

只要clubsArray[new Random().nextInt(clubsArray.length)] 就可以了

或者要随机化元素的顺序,使用List&lt;?&gt; clubsList=Arrays.asList(clubsArray); Collections.shuffle(clubsList);

【讨论】:

谢谢。如果我要使用它,我是否应该也将它从阵列中删除? (以防止在稍后阶段选择重复) @Craig:删除数组中的元素是 O(n),所以也许这不是你想要做的。也许你想先洗牌整个数组? (就像洗牌一样)This 是如何在 C 中做到这一点 好吧,可能,或者检查输出数组是否已经有它,如果有,选择另一个。

以上是关于从数组中选择一个随机值的主要内容,如果未能解决你的问题,请参考以下文章

如何确保从数组中随机选择的下一个值与使用 Javascript 的当前值不同? [复制]

使用javascript从关联数组中选择随机值? [复制]

如何使用 JavaScript 从数组中选择随机值? [复制]

Swift 从数组中选择一个随机图像

Swift从数组中选择一个随机图像

从数组中选择不相等的随机整数(python)