2012-01-29 89 views
7

我有一個數組值的數組,我想從該數組中隨機選擇一個值,然後將其插入到一個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

回答

24

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