これは、クラスEmployeeのメソッドです。id(int)、name、phone、job title(すべて文字列)の4つの変数を含むemployeeの2つのオブジェクトを比較します。
public int compareTo(Employee other) {
if (this.id == other.id) {
if (this.name.compareTo(other.name) == 0) {
if (this.phoneNumber.compareTo(other.phoneNumber) == 0) {
if (this.jobTitle.compareTo(other.jobTitle) == 0)
return 0;
else if (this.jobTitle.compareTo(other.jobTitle) > 0)
return 1;
else
return -1;
}
else if (this.phoneNumber.compareTo(other.phoneNumber) > 0)
return 1;
else
return -1;
}
else if (this.name.compareTo(other.name) > 0)
return 1;
else
return -1;
}
else if (this.id > other.id)
return 1;
else
return -1;
}
コードは正常に機能しますが、かなり矢印の形になり、少し複雑になっていることを認識しています。このif/elseステートメントのコレクションをクリアするためのアドバイスはありますか?
編集:IDの後に比較を続けるのは直感に反しているように思われるかもしれませんが、これは論理的には一意ですが、それを使用してください。