我正在制作一个模拟纸牌游戏的程序。我有一个代表纸牌的Card
类:
//suit types
public enum Suits{
SPADES,
CLUBS,
HEARTS,
DIAMONDS
}
//value types
public enum Values{
TWO,
THREE,
FOUR,
FIVE,
SIX,
SEVEN,
EIGHT,
NINE,
TEN,
JACK,
QUEEN,
KING,
ACE,
}
private Suits suit;
private Values value;
//Card constructor
public Card(Values value, Suits suit){
this.value = value;
this.suit = suit;
}
在我的游戏课程中,我有一个由
List
的Cards
表示的玩家手牌:public List<Card> playerHand = new ArrayList<Card>();
有什么方法可以按枚举
Values
对玩家的手进行排序吗?意思是玩家的牌是:十,王牌,二,五
订购后将是:
二,五,十,王牌
我的条件是
Ace
总是很高,而Suit
没关系。我知道排序列表很简单,我只是不知道如何针对基于Object
的enum
最佳答案
使用
Collections.sort(list, comparator);
用于排序。至于比较器:
new Comparator<Card>() {
@Override
public int compare(Card x, Card y) {
return x.getValue().compareTo(y.getValue());
}
}
关于java - 订购对象 list ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23136226/