【问题标题】: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() 删除它来自数组。但是,当我使用它时,它不起作用。

【问题讨论】:

标签: java arrays random


【解决方案1】:

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

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

【讨论】:

  • 谢谢。如果我要使用它,我是否应该也将它从阵列中删除? (以防止在稍后阶段选择重复)
  • @Craig:删除数组中的元素是 O(n),所以也许这不是你想要做的。也许你想先洗牌整个数组? (就像洗牌一样)This 是如何在 C 中做到这一点
  • 好吧,可能,或者检查输出数组是否已经有它,如果有,选择另一个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 2011-09-22
  • 2021-03-17
  • 2014-07-23
  • 2017-07-01
相关资源
最近更新 更多