从数组中选择一个随机值
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<String>
的东西,以便将值插入到数组中,然后使用 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<?> clubsList=Arrays.asList(clubsArray); Collections.shuffle(clubsList);
。
【讨论】:
谢谢。如果我要使用它,我是否应该也将它从阵列中删除? (以防止在稍后阶段选择重复) @Craig:删除数组中的元素是 O(n),所以也许这不是你想要做的。也许你想先洗牌整个数组? (就像洗牌一样)This 是如何在 C 中做到这一点 好吧,可能,或者检查输出数组是否已经有它,如果有,选择另一个。以上是关于从数组中选择一个随机值的主要内容,如果未能解决你的问题,请参考以下文章
如何确保从数组中随机选择的下一个值与使用 Javascript 的当前值不同? [复制]