Person
キーボードから入力した人の名前と姓を保持するクラスを(本にあるように)作成しました。次にPhoneNumber
、国コード、市外局番、および人の番号を文字列としてカプセル化する別のクラスがあります。
Personは、ハッシュマップのキーとして使用されることを目的としています。
クラスはとの両方をBookEntry
カプセル化します。多くのオブジェクトが、電話帳を表すHashMapを構成しています。Person
PhoneNumber
BookEntry
Person
Comparable<Person>
メソッドを含むように実装しますCompareTo(Person)
。後で本はequals(Object anotherPerson)
方法を追加します。
私の質問は、CompareTo
2つのキーを比較するのに十分な方法ではないかということです。それとも、HashMap <>の内部メカニズムでは、equals()
2つのキーを比較するためのメソッドを含める必要がありますか?
compareTo()
public int compareTo(Person person) {
int result = lastName.compareTo(person.lastName);
return result==0? firstName.compareTo(person.firstName):result;
}
equals()
public boolean equals(Object anotherPerson){
return compareTo((Person)person)==0;
}