Zeitangaben und hashCode()
Wir betrachten folgende Klasse zur Darstellung von Zeitdauern kleiner als einem Tag:
public class ZeitDauer {
final int stunden, minuten, sekunden;
/**
* Zeitangabe kleiner als 1 Tag
*
* @param stunden Werte von 0 bis 23
* @param minuten Werte von 0 bis 59
* @param sekunden Werte von 0 bis 59
*/
public ZeitDauer(final int stunden, final int minuten, final int sekunden) {
this.stunden = stunden;
this.minuten = minuten;
this.sekunden = sekunden;
}
}
Für diese Klasse kann man zwei verschiedene hashCode() Methoden passend zur üblichen Definition der Gleichheit zweier Zeitdauerangaben definieren:
Methode 1 | Methode 2 |
---|---|
|
|
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.