将枚举中的所有元素添加到 ArrayList
Adding all the elements from an enum into an ArrayList
有没有办法遍历枚举的所有元素并将它们添加到 LinkedList 中?
我尝试做的例子:我正在制作一副纸牌。我有 2 个枚举:排名和价值。使用嵌套的 for 循环,我想使用 2 个枚举将牌组中的每张牌都添加到 ArrayList 中。
谢谢!
您可以简单地使用枚举的 .values() 静态函数 class。
您可以使用:
for(Rank rank : Rank.values()) {
for (Value val : Value.values()) {
// stuff
}
}
您需要做的第一件事是创建 Card
class.
一旦你有了它,循环遍历第一个枚举的每个元素(使用 .values()
获取每个元素),并且对于每个元素,循环遍历第二个枚举的每个元素。在第二个循环中,使用这些值创建一个新的 Card
。
试试这个:
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;
}
枚举有 values()
方法,returns 实例数组。
使用两个嵌套的 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);
}
}
这假设您有一张卡片 class,其构造函数将每个枚举作为参数。您还需要一个列表或其他集合来保存卡片。
有没有办法遍历枚举的所有元素并将它们添加到 LinkedList 中?
我尝试做的例子:我正在制作一副纸牌。我有 2 个枚举:排名和价值。使用嵌套的 for 循环,我想使用 2 个枚举将牌组中的每张牌都添加到 ArrayList 中。
谢谢!
您可以简单地使用枚举的 .values() 静态函数 class。
您可以使用:
for(Rank rank : Rank.values()) {
for (Value val : Value.values()) {
// stuff
}
}
您需要做的第一件事是创建 Card
class.
一旦你有了它,循环遍历第一个枚举的每个元素(使用 .values()
获取每个元素),并且对于每个元素,循环遍历第二个枚举的每个元素。在第二个循环中,使用这些值创建一个新的 Card
。
试试这个:
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;
}
枚举有 values()
方法,returns 实例数组。
使用两个嵌套的 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);
}
}
这假设您有一张卡片 class,其构造函数将每个枚举作为参数。您还需要一个列表或其他集合来保存卡片。