2017-01-15 98 views
-1

我在主類中創建了幾個對象,並以NPC類爲界。Java隨機對象

NPC zagolar = new NPC("Zagolar",25000,25000,250,50); 
NPC riginmon = new NPC("Riginmon",50000,50000,500,100); 
NPC setkov = new NPC("Schetkov",100000,100000,1000,150); 
NPC tortugate = new NPC("Tortugate",200000,200000,2000,200); 
NPC echonia = new NPC("Echonia",225000,225000,2500,400); 
NPC cajsa = new NPC("Cajsa",250000,250000,2750,500); 
NPC vaula = new NPC("Vaula",300000,300000,3500,700); 

我想從其中一個隨機選擇currentNPC。你能幫我解答嗎?

+2

將他們添加到一個數組或一個列表,然後選擇一個隨機索引。 – Keiwan

+1

非常簡潔的答案,將它們全部添加到列表中,然後使用'NPC randomItem = list.get(new Random()。nextInt(list.size()))' – nullpointer

+0

非常感謝,問題可能很簡單,我是編程中的新手。 – Serhat

回答

1

我會使用一個數組,因爲它可能比一個ArrayList快,並且它不會將所有內容都轉換爲對象。這樣,初始化這樣的數組:

NPC[] random_npc=new NPC[] {zagolar,riginmon,setkov,tortugate,echonia,cajsa,vaula}; 

,然後選擇一個隨機元素:

NPC choosed_npc=random_npc[(int)(Math.random()*random_npc.length)]; 

(的Math.random給出大於0的數且小於1)

+0

而不是'7'我肯定會使用'random_npc.length'。它更易於理解,下次更改代碼時不太容易出錯。否則很好! –

+0

謝謝,Ole V.V.好的建議。我會編輯。 – user7185318

+0

我編輯了它 – user7185318