繁体   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