2010-10-26 64 views
-1

我知道這是正常的整數,但有這樣的事情索引?生成一個數組的隨機索引

Random dice = new Random(); 
int n = dice.nextInt(6); 
System.out.println(n); 
+3

什麼是正常的整數的指數?什麼是指數? – 2010-10-26 11:26:30

+1

能否詳細說明.. – 2010-10-26 11:28:44

+2

我真的不明白你的問題。一個數組索引只是一個整數,所以你可以使用這些隨機數作爲數組索引而沒有問題。 – fresskoma 2010-10-26 11:29:14

回答

11

你是什麼意思?數組索引是正常數字,所以你可以很容易地做

String names[] = { "One", "Two", "Three", "Four", "Five", "Six" }; 
Random Dice = new Random(); 
int n = Dice.nextInt(6); 
System.out.println(names[n]); 

或者你的意思是一個隨機的Iterator類?谷歌是你的朋友,this是我得到的第一個。

3

要生成someArray隨機指標你做

int index = new Random().nextInt(someArray.length); 

nextInt(n)返回介於0(含)n(獨家)一些這就是爲什麼someArray.length給出說法。

0

另一解決方案是:

int randomElement = yourArray[Math.random()*yourArray.length]; 

的Math.random()如果乘以陣列的運行長度數生成0和1之間的隨機數,將得到的一個隨機索引陣列。

例如:如果的Math.random()生成的1.2和你的數組有長度爲10,你會得到的2

+0

不要這樣做。 Random類已經解決了這個問題,並保證了「均勻」分佈。 – Jorn 2010-10-26 11:40:08

+1

您必須添加Math.floor才能使其工作。 – Cephalopod 2010-10-26 11:40:51

+0

感謝您對我的回答發表評論。這是我多年來的工作方式,所以很高興知道還有另一個更好的選擇。 – Andrew 2010-10-26 11:47:12