Zeitangaben und hashCode()
No. 250
F: |
Wir betrachten folgende Klasse zur Darstellung von Zeitdauern kleiner als einem Tag:
Für diese Klasse kann man zwei verschiedene hashCode() Methoden passend zur üblichen Definition der Gleichheit zweier Zeitdauerangaben definieren:
Welche der beiden Methoden ist besser in Bezug auf die Prüfung der Ungleichheit zweier Instanzen? Begründen Sie Ihre Aussage. Hinweis: Auszug aus der Dokumentation von hashCode(): However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables. |
||||
A: |
Während der gesamten Taglänge gibt es bei Methode 1 keine Konflikte: Alle Hashwerte unterscheiden sich. Dies ist der Idealzustand. Methode 2 hat hingegen viele Konflikte mit identischen Hashwerten, z.B. 20 + 10 + 12 == 30 + 0 + 12. |