Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

비교가능한카드

앞장에서 설명한 카드에, 비교가능한 기능을 탑재해보자

제네릭 프로그래밍의 한가지 방법으로, 커스텀한 자료에대해 비교기능을 탑재하여

여러가지 자료구조에서 추가적인 구현없이 비교가능해진다. 소팅이 한가지예이다. 

Code Block
languagejava
themeEmacs
public class Card implements Comparable<Card>
{
    @Override
    public int compareTo(Card other) {
        if (this.getValue()<other.getValue()) return -1;
        else if (this.getValue()>other.getValue()) return 1;
        else return 0;
    }

    @Override
    public boolean equals(Object o){
        Card anotherCard = (Card) o;
        return this.getValue() == anotherCard.getValue();
    }

    @Override
    public int hashCode(){
        assert false: "no hashcode implementation";
        return 17;
    }
    
}