如何使用整数引用枚举以在数组中使用

1 java arrays oop enums

我正在尝试用卡片对象创建一个牌组.这个卡对象有两个enums,一个是int,一个boolean如下图所示.为了创建这个套牌,我需要循环穿着套装和面值.

不幸的是,如果必须enum通过名称引用每个值,这将需要4*13 if语句,即card[0] = new Card(Suit.Spade, Face.two, j, false);

我需要知道的是,如果有一种方法可以将每个卡的enum值设置为而不是Suit.Spade,就像suit.int这样,以便下面的内容可以在没有52 if语句的情况下工作.我简单地计算卡片,这Suit.j, Face.k只是我正在寻找的一个例子.

    int i = 0;
    int j = 1;
    int k = 1;


    while(j <= suitCount)
    {
        k = 0;
        while(k <= faceCount)
        {
            card[i] = new Card(Suit.j, Face.k, i, false);

            k++;
            i++;
        }
        j++;
    }
Run Code Online (Sandbox Code Playgroud)

Puc*_*uce 5

尝试类似的东西:

int i = 0;
List<Card> cards = new ArrayList<>(Suit.values().length * Face.values().length);
for (Suit suit : Suit.values()){
    for (Face face : Face.values()){
        cards.add(new Card(suit, face, i, false));
        i++;
    }
}
Run Code Online (Sandbox Code Playgroud)