나는 카드의 arraylist을 가지고 있습니다 ArrayList hand; 손 = {2S, 3H, 2D, 6H, 4C}이라고 가정합니다. 나는 arrabylist 손을 정렬하여 hand = {4C,2D,3H,6H,2S}
이되는 방법이 필요합니다. enum에 메서드 compareTo()
이 있다는 것을 알고 있지만 사용 방법을 잘 모르겠습니다. 아무도 나에게 약간의 지침을 줄 수 있습니까?열거 형을 사용하여 arraylist를 정렬하는 방법
public class PlayingCard implements Comparable
{
//Instance Variables
private Suit suit;
private Rank rank;
//Constructor
public PlayingCard(Suit suit, Rank rank)
{
this.suit = suit;
this.rank = rank;
}
....
public int compareTo(Object other)
{
PlayingCard that = (PlayingCard)other;
if (this.suit == that.suit)
return -this.rank.compareTo(((PlayingCard)other).rank);
return -this.suit.compareTo(((PlayingCard)other).suit);
}
//============================================================================
//Representation of the Suit of a Playing-Card
public enum Suit
{
CLUBS('C'), DIAMONDS('D'), HEARTS('H'), SPADES('S');
private char symbol;
private Suit(char symbol)
{
this.symbol = symbol;
}
public char getSymbol()
{
return this.symbol;
}
}
//============================================================================
//Representation of the Rank os a Playing-Card
public enum Rank
{
DEUCE('2'), TREY('3'), FOUR('4'), FIVE('5'), SIX('6'), SEVEN('7'),
EIGHT('8'), NINE('9'), TEN('T'), JACK('J'), QUEEN('Q'), KING('K'), ACE('A');
private char symbol;
private Rank(char symbol)
{
this.symbol = symbol;
}
public char getSymbol()
{
return this.symbol;
}
}
}
--------------------------------------------------------------------------------------
public class PlayingCardHand {
//Instance Variables
private int cardsInCompleteHand; //Maximum # cards in this hand
private ArrayList<PlayingCard> hand; //A hand of Playing-Cards
private Comparator comparer; //Client-provided comparison of PlayingCards
//Constructor
//Appropriate when PlayingCard compareTo() is to be used to compare PlayingCards
public PlayingCardHand(int handSize) {
if (handSize < 1) {
throw new RuntimeException("Hand size cannot be less than 1");
}
cardsInCompleteHand = handSize;
hand = new ArrayList<PlayingCard>();
}
...
public void sortCards()
{
}
카드를 나타내는 개체가 있습니까? 카드의 구성 요소를 나타내는 두 개의 열거 형을 보여 주셨습니다. –
예, 카드를 나타내는 객체가 – jorgeAChacon
@ user1166061입니다. 코드를 표시 할 수 있습니까? – mre