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