从数组中选择一个随机值

从数组中选择一个随机值

问题描述:

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

我不确定你需要看什么代码。所以,

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

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()将其从数组中移除,但是当我使用它时't work。

+0

你不是真的“插入”到一个int变量,而是“分配”:) :) – 2012-01-29 17:54:30

+0

可能的重复[如何用给定的数字列表中的Java生成一个随机数](http://stackoverflow.com/questions/1247915/how-to-generate-a-random-number-with-java-from-given-list-of-numbers) – Mark 2012-05-08 14:19:12

Just clubsArray[new Random().nextInt(clubsArray.length)] would work

要随机化元素的顺序,请使用List<?> clubsList=Arrays.asList(clubsArray); Collections.shuffle(clubsList);

+0

谢谢。如果我要使用它,我应该从阵列中删除它吗? (以防止在后期选择重复项) – Craig 2012-01-29 17:55:36

+0

@Craig:删除数组中的元素是O(n),所以也许这不是你想要做的。也许你想先洗牌整个阵列? (因为一个人会嘲笑一副扑克牌)[This](http://stackoverflow.com/a/6127606/165544)是如何在C – danr 2012-01-29 18:11:10

+0

中做到的,或许,或者检查输出数组是否已经拥有它如果是的话,选择另一个。 – 2012-01-29 19:50:37