2017-08-07 95 views
-4

我想創建一個沒有重複的隨機整數,當最大列表是我的列表中的一個長度。Android Studio Random Number No Dublicates

我使用此代碼,但我有重複。我應該改變什麼?

Random rand = new Random(); 
n = rand.nextInt(QuestionLibrary.mChoices.length) + 1; 
+0

然後加入'N'到列表,檢查列表包含'N'。如果是,則生成一個新的'n'。 – csmckelvey

+1

每週至少要問幾次這個問題。搜索很快就會得出答案。 – Carcigenicate

回答

0

下面概述的解決方案比檢查每個隨機數還沒有被選中更有效。

這個想法是,你在隨機範圍內填充所有可能數字的列表。然後,你打亂清單。隨後從混洗列表的前面彈出物品,以獲得每個新的隨機數。

Generating Unique Random Numbers in Java

+0

我可以如何使用它到我的項目? – MariosGR

+0

將所有可能的隨機數添加到新列表中。在你的情況下,mChoices的長度。然後,使用現有的java方法對列表的順序進行混洗。現在,您可以遍歷列表,並且您在當前索引處提取的每個數字都將是您範圍內的唯一隨機數。 – Stuckzilla

+0

這個int在我的遊戲中改變了我的照片和問題和anwsers ..所以當我+照片我應該+和這個列表?有一些更簡單的方法? – MariosGR