从数组中随机选择一个值

7
我有一个数字值的数组,我想从这个数组中随机选择一个值,然后将它插入到一个int变量中。
我不确定你需要看到哪些代码。所以,
这是我用来生成13个数字(1-13)并将它们插入到数组中的for循环。
    int clubsArray []; 
    clubsArray = new int [13]; 

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

        clubsArray[i] = i +1; 

    }

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

我在许多网站上查找过,并且看到了像 ArrayList<String> 这样的东西,以将值插入到数组中,然后使用 Random generator = new Random() 从数组中选择该值,然后使用 .remove() 将其从数组中删除。 但是每当我使用它时,它都无法正常工作。


你并不是真正地“插入”一个整数变量,而是“赋值”给它 :) - Savino Sguera
可能是重复的问题:如何从给定的数字列表中使用Java生成随机数 - mmmmmm
1个回答

24

只需要使用clubsArray[new Random().nextInt(clubsArray.length)]就可以工作。

或者想要随机排列元素,可以使用List<?> clubsList=Arrays.asList(clubsArray); Collections.shuffle(clubsList);


谢谢。如果我要使用它,那么我应该从数组中删除它吗?(以防止在后期选择重复项) - Craig
@Craig:从数组中删除一个元素的时间复杂度是O(n),所以也许这不是你想要做的。也许你想先随机打乱整个数组?(就像洗牌一样)这里是如何在C语言中实现的。 - danr
好吧,或者可以检查输出数组是否已经有它,如果是,则选择另一个。 - ՕլՁՅԿ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接