2015-10-05 64 views
1

我有一個名爲Events的數組。如何使用Math.random將數值放在數組中的隨機位置?

String[] Events = new String[20]; 

我該如何編寫一個方法來使用math.random()僅將10個隨機事件放入此數組?我試圖解決這個問題是:我是新的,仍在學習從python移動到java,強調很多。

public static void AddRandomEvents(Events[] event) { 
    for(int i = 0; i < event.length; i++){ 
     int rand = (int) (Math.random() + 10) + 1; 
     System.out.println(event[rand]); 
    } 
} 

我有一類稱爲事件而這就是爲什麼它的活動[]

任何幫助或貢獻將是有益的。謝謝。

還增加了,我把10個隨機事件,從這個陣列

String[] names = {"Wedding", "Birthday", "Funeral","Clubbing","Anniversary", "Volunteer", "Job fair"}; 

的事件數組,怎麼樣?謝謝

+0

你想從名字陣列設置的事件陣列的10個值?在這種情況下可能會發生重複錄入。 。對? – stinepike

回答

1

java.util.Random還提供了生成僞隨機數均勻分佈值的方法。爲了從event數組中挑選10個隨機事件,nextInt(int n)方法可能會有所幫助。

public static void addRandomEvents(Events[] events) { 
     Random random = new Random(); 
     for(int i = 0; i < 10; i++){ 
      int randomEventIndex = random.nextInt(eventNames.length); 
      String randomEventName = eventNames[randomEventIndex]; 
      String randomEventTime = new Date().toString(); 
      int randomPriority = random.nextInt(events.length); 
      Events randomEvent = new Events(randomEventTime, randomEventName, randomPriority); 
      events[i] = randomEvent; 
     } 
    } 

這種方法可以以這種方式來調用:

static String[] eventNames = {"Wedding", "Birthday", "Funeral","Clubbing","Anniversary", "Volunteer", "Job fair"}; 
    Events[] events = new Events[10]; 
    addRandomEvents(events); 
+0

這個問題不是要求挑選10個隨機事件。它將10個隨機事件放入另一個陣列的事件數組中:) – ekeith

+0

我還添加了幾行來澄清問題以防萬一。 – ekeith

+0

爲了澄清,我們有一個事件源數組,以及一個目標數組,它必須用來自源數組的隨機10個事件填充? –