我得到了一個充滿“專案”的列舉,我想生成列舉的一個隨機專案并將其放入我的庫存中,這是我用陣列制作的。該陣列只有 10 個整數的空間。
public class InventoryEnums {
public static void main (String[] args){
int[] inventar = new int[9] // int array mit 10 Pl?tzen
enum items {
KARTE, MONSTERBALL, MONSTERDEX, FAHRRAD, VM03, HYPERHEILER, AMRENABEERE, TOPGENESUNG, ANGEL, TOPSCHUTZ
}
uj5u.com熱心網友回復:
您可以獲得一個介于 0 到 array.length 范圍內的隨機整數值
int rand = new Random().nextInt(items.values().length);
然后你可以得到enum使用生成的隨機值
items.values()[rand];
然后在回圈中使用它來填充陣列。
uj5u.com熱心網友回復:
列舉應該以單數命名,并且應該以大寫字母開頭。
enum Item { KARTE, MONSTERBALL, MONSTERDEX, FAHRRAD, VM03, HYPERHEILER, AMRENABEERE, TOPGENESUNG, ANGEL, TOPSCHUTZ }
我建議你設計一個比“專案”更具描述性的名稱。
通過呼叫獲取所有列舉物件的陣列values。
Item[] allItems = Item.values() ;
生成一個亂數。使用該數字作為所有專案陣列的索引。
int randomIndex = ThreadLocalRandom.current().nextInt( 0 , allItems.length ) ; // ( inclusive , exclusive )
Item rando = allItems[ randomIndex ] ;
或者,也許您打算對列舉的所有元素進行隨機排序(洗牌)。如果是這樣,List請由陣列支持。打電話Collections.shuffle。對串列所做的更改也會影響支持陣列。所以陣列被打亂了。
Item[] allItems = Item.values() ;
List< Item > list = Arrays.asList( allItems );
Collections.shuffle( list );
更簡單地說:
Item[] allItems = Item.values() ;
Collections.shuffle( Arrays.asList( allItems ) );
請參閱在 Ideone.com 上實時運行的代碼。
[MONSTERBALL、TOPSCHUTZ、KARTE、FAHRRAD、VM03、MONSTERDEX、ANGEL、AMRENABEERE、TOPGENESUNG、HYPERHEILER]
uj5u.com熱心網友回復:
這不是你想要的嗎?
public class App {
public static void main(String[] args) {
Random random = new Random();
enum items {
KARTE, MONSTERBALL, MONSTERDEX, FAHRRAD, VM03, HYPERHEILER, AMRENABEERE, TOPGENESUNG, ANGEL, TOPSCHUTZ
}
items[] inventar = items.values();
int index = random.nextInt(inventar.length);
System.out.println(inventar[index]);
}
}
uj5u.com熱心網友回復:
還有另一種方法:
enum Item {
KARTE, MONSTERBALL, MONSTERDEX, FAHRRAD, VM03, HYPERHEILER, AMRENABEERE,
TOPGENESUNG, ANGEL, TOPSCHUTZ
}
Item[] inventar = Item.values();
Item singleItem = inventar[new Random().nextInt(inventar.length)];
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/477125.html
