Guten Tag zusammen,
ich befasse mich derzeit etwas mit dem Collection-Framework von Java. Dabei wird ja nur mit Referenztypen gearbeitet und um diese zu vergleichen benötigt man ja die von Object ererbte Methode equals
Nun wollte ich mal nachfragen ob es eine effizienten Weg gibt diese equals Methode zu schreiben. Wir haben früher immer sämtliche Primitivien Typen mittels "==" auf Gleichheit überprüft und für Referenztypen dann eine equals Methode. Doch je mehr Referenztypen in einer Klasse stehen desto größer muss eine solche equals Methode werden.
Unser Prof meinte wir sollen uns eine eigene hashCode() Methode schreiben die einen eindeutigen Wert für jedes Objekt zurück gibt und man so dann eben auf Gleichheit Prüfen kann alles schön und gut doch ich hab keine Idee wie ich mir so eine hashCode() Methode schreiben soll
Hab mir zu diesem Thema auch schon einiges angeschaut und auch sowas haben wir in ALDA bearbeitet doch was wäre wenn für ein verschiedenes Objekt dann der selbe Hash raus kommt?
Hat jemand eine Idee? oder sprengt das Thema den rahmen ?
LG
ich befasse mich derzeit etwas mit dem Collection-Framework von Java. Dabei wird ja nur mit Referenztypen gearbeitet und um diese zu vergleichen benötigt man ja die von Object ererbte Methode equals
Nun wollte ich mal nachfragen ob es eine effizienten Weg gibt diese equals Methode zu schreiben. Wir haben früher immer sämtliche Primitivien Typen mittels "==" auf Gleichheit überprüft und für Referenztypen dann eine equals Methode. Doch je mehr Referenztypen in einer Klasse stehen desto größer muss eine solche equals Methode werden.
Unser Prof meinte wir sollen uns eine eigene hashCode() Methode schreiben die einen eindeutigen Wert für jedes Objekt zurück gibt und man so dann eben auf Gleichheit Prüfen kann alles schön und gut doch ich hab keine Idee wie ich mir so eine hashCode() Methode schreiben soll
Hab mir zu diesem Thema auch schon einiges angeschaut und auch sowas haben wir in ALDA bearbeitet doch was wäre wenn für ein verschiedenes Objekt dann der selbe Hash raus kommt?
Hat jemand eine Idee? oder sprengt das Thema den rahmen ?
LG