0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Effective Javaを読む】 第3章 項目12 『Comparableの実装を検討する』

Posted at

#Comparableの実装を検討する

他のメソッドとは異なりcompareToメソッドはObjectでは宣言されていません。
正確に言えば、compareToメソッドはComparableインターフェースの唯一のメソッドです。
アルファベット順、数値順、年代順などの明らかに自然な順序を持つ値クラスを書くのであれば、ちょっとの努力で恩恵が受けられるのでComparableを実装しましょう。

##サンプルコード

public int compareTo(PhoneNumber pn) {
    //市外局番を比較する
    if (areaCode < pn.areaCode)
        return -1;
    if (areaCode > pn.areaCode)
        return 1;

    //市外局番は等しく、市内局番の前半を比較する
    if (prefix < pn.prefix)
        return -1;
    if (prefix > pn.prefix)
        return 1;

    //市外局番と市内局番の前半は等しく、市内局番の後半を比較する
    if (lineNumber < pn.lineNumber)
        return -1;
    if (lineNumber > pn.lineNumber)
        return 1;
    
    return 0; //全てのフィールドが等しい
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?