#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; //全てのフィールドが等しい
}