2016-02-17 138 views
0

我已經寫了一個方法來生成一個數組的隨機值,但我不知道如何生成另外兩個值,因爲它們最終都只是相同的數字。 這裏是我寫的,但它只是崩潰......如何從一個數組中生成3個隨機值

public void getRandomTopics() { 
Random random = new Random(); 

int index = random.nextInt(group_topics.length); 

randomOne = group_topics[index]; 
randomTwo = group_topics[index]; 
randomThree = group_topics[index]; 

if(randomOne.equals(randomTwo) || randomOne.equals(randomThree) || randomThree.equals(randomTwo)) { 
    isEqual = true; 
} 
while(isEqual = true){ 
    randomOne = group_topics[index]; 
    randomTwo = group_topics[index]; 
    randomThree = group_topics[index]; 

} 
topicOne = (TextView) findViewById(R.id.textView2); 
topicOne.setText(randomOne); 

topicTwo = (TextView) findViewById(R.id.textView3); 
topicTwo.setText(randomTwo); 

topicThree = (TextView) findViewById(R.id.textView4); 
topicThree.setText(randomThree); 

}

如果有人知道更簡單的方式來做到這一點的幫助感激:)

+0

您需要創建隨機數的3倍,僅未1次。 – Atri

+0

那麼,因爲所有的3都是使用'group_topics [index]'並行提取的,不需要改變它們之間的'index'的值,*爲什麼*你會期望不同的值? – Andreas

回答

1

創建3個不同的隨機數字:

int index1 = random.nextInt(group_topics.length); 
int index2 = random.nextInt(group_topics.length); 
int index3 = random.nextInt(group_topics.length); 

現在使用這3個隨機數字,而不是您生成一次相同index


randomOne = group_topics[index1]; 
randomTwo = group_topics[index2]; 
randomThree = group_topics[index3]; 
相關問題