我有一个使用两个枚举创建的对象卡,即 Suit 和 Rank。这些枚举的读法如下(对格式表示歉意,不太确定如何正确):
public enum Suit
{
HEARTS(),
DIAMONDS(),
SPADES(),
CLUBS();
}
public enum Rank
{
TWO(),
THREE(),
FOUR(),
FIVE(),
SIX(),
SEVEN(),
EIGHT(),
NINE(),
TEN(),
JACK(),
QUEEN(),
KING(),
ACE();
}
Card 构造函数如下:
public Card(Suit s, Rank r) //s and r are fields in class Card
{
suit = s;
rank = r;
}
假设一个 Card 对象是用 Suit DIAMONDS 和 Rank NINE 制作的,我知道它们分别是索引 1 和 7。
名为 Hand 的方法正在处理 5 个 Card 对象的 ArrayList,并将按值对它们进行排序,以便更容易以某种方式排列它们。是否可以为此目的从 Card 对象获取这些索引,或者是否有其他方法可以做到这一点?
添加注释,这是为了赋值,所以我受到需要使用枚举和 ArrayList 的限制。
最佳答案
更好的解决方案是为枚举中的特定元素定义值
public enum CardSuits {
HEARTS(1),
CLUBS(2),
DIAMONDS(3),
SPADES(4);
public final int rank;
private CardSuits(int rank){
this.rank = rank;
}
public int getRank() {
return rank;
}
}
然后,您可以调用 CardSuits.SPADES.getRank()
以在需要时获取其值。这样,这些值完全由您精确定义,如果有人交换顺序,也不会造成困惑。
关于java - 从对象获取枚举的索引? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66469237/