[英]Adding all the elements from an enum into an ArrayList
有沒有辦法遍歷枚舉的所有元素以將它們添加到LinkedList中?
我要嘗試的示例:我正在制作一副紙牌。 我有2個枚舉:等級和價值。 使用嵌套的for循環,我想使用2個枚舉將卡座的每張卡都添加到ArrayList中。
謝謝!
您可以簡單地使用enum類的.values()靜態函數。
您可以使用:
for(Rank rank : Rank.values()) {
for (Value val : Value.values()) {
// stuff
}
}
嘗試這個:
enum Rank { ... }
enum Suit { ... }
class Card {
Rank rank;
Suit suit;
Card(Rank r, Suit s) { rank = r; suit = s; }
}
然后再..
List<Card> all() {
List<Card> cards = new ArrayList<>();
for (Rank r : Rank.values()) {
for (Suit s : Suit.values()) {
cards.add(new Card(r, s));
}
}
return cards;
}
您需要做的第一件事是創建Card
類。
一旦有了它,就遍歷第一個枚舉的每個元素(使用.values()
獲得每個元素),對於每個元素,遍歷第二個枚舉的每個元素。 在第二個循環中,使用這些值創建一個新的Card
。
枚舉具有values()
方法,該方法返回實例的數組。
使用兩個嵌套的foreach循環:
List<Card> deck = new LinkedList<>();
for (Suit suit : Suit.values())
for (Rank rank : Rank.values())
deck.add(new Card(suit, rank));
我想你想要這樣的東西:
for(Rank r : Rank.values()){
for(Value v : Value.values()) {
// new Car(r, v);
}
}
假設您有Card類,並且具有一個將每個枚舉作為參數的構造函數。 您還需要一個列表或其他收藏夾來保存卡片。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.