Languages/Java

[자바 중급 개념] 03. 인터페이스와 추상 클래스

Dev다D 2021. 3. 9. 17:13
반응형

카드 정렬

 

Collections 클래스와 Comparable 인터페이스를 이용해 Card 리스트를 작은 순서로 정렬해봅시다.

룰은 다음과 같습니다:

  1. 슈트(suitNumber)가 높은 카드가 '더 크다'.
  2. 수트가 같은 경우, 랭크(rankNumber)가 더 높은 카드가 '더 크다'.

package Ex0309;

public class Card implements Comparable<Card> {
    public final int suitNumber;
    public final int rankNumber;

    public Card(int suitNumber, int rankNumber) {
        this.suitNumber = suitNumber;
        this.rankNumber = rankNumber;
    }

    public String getSuit() {
        switch (suitNumber) {
            case 1:
                return "Clubs";
            case 2:
                return "Diamonds";
            case 3:
                return "Hearts";
            case 4:
                return "Spades";
            default:
                return "";
        }
    }

    public String getRank() {
        switch (rankNumber) {
            case 1:
                return "Ace";
            case 11:
                return "Jack";
            case 12:
                return "Queen";
            case 13:
                return "King";
            default:
                return String.valueOf(rankNumber);
        }
    }

    public String toString() {
        return getRank() + " of " + getSuit();
    }

    @Override
    public int compareTo(Card o) {
        if (suitNumber == o.suitNumber) {
            return rankNumber - o.rankNumber;
        } else {
            return suitNumber - o.suitNumber;
        }
    }
}

본 내용은 Codeit의  '자바 기초' 강의를
참고하여 작성한 내용입니다.

 

반응형