簡體   English   中英

將枚舉中的所有元素添加到ArrayList中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM