Warum verwenden OOP-Sprachen den Speicherort eines Objekts als Standard-Hash-Code für Instanzen einer Klasse? Wenn die Hash-Tabelle kleiner als der adressierbare Speicher ist.Warum verwenden viele OO-Sprachen den Speicherort des Objekts selbst als Standard-Hash-Code?
0
A
Antwort
1
Weil es sehr bequem ist!
Die Speicheradresse ist eine eindeutige Kennung eines Objekts, da kein anderes Objekt denselben Speicherplatz belegen kann. Hash-Tabelle muss nicht groß sein, um sie zu verwenden. Angenommen, Ihre Hash-Tabelle ist zunächst klein und enthält nur 10 Buckets. Um zu entscheiden, welchen Eimer Sie in Ihr Objekt legen sollen, nehmen Sie seine Adresse und % 10
. Und Sie haben eine "gute" Verteilung über Buckets. Hash-Tabellen sind wirklich interessant, und ich würde empfehlen, mehr über sie zu lesen, z. auf Wikipedia.
Verwandte Themen
- 1. Warum gibt load (...) den Charakternamen eines Objekts anstelle des Objekts selbst zurück?
- 2. Warum druckt das den Speicherort eines Objekts lieber als was ich will?
- 3. So verwenden Sie den Speicherort des aktuellen Hintergrunds in cmd
- 4. Warum viele zu viele Beziehung mit Selbst kann nicht symmetrisch
- 5. Den Speicherort des Benutzers in Meteor speichern
- 6. Verwenden des Werts einer Variablen als Name eines Objekts
- 7. Wie Variable als Speicherort URL verwenden?
- 8. Array des Objekts als String zu Array des Objekts (jSON)?
- 9. Liste des Objekts ist null, selbst nachdem Konstruktor aufrufe
- 10. Wie könnte ich die Werte innerhalb des JSON-Objekts und den Namen des Objekts selbst in C#
- 11. Wie finde ich den Speicherort des Scratchpuffers?
- 12. Erhalte den Namen des Objekts als String in Javascript
- 13. Warum testet Mockito den Schein statt des zu testenden Objekts?
- 14. Warum reduiert das Formular den String anstelle des Objekts?
- 15. C Speicherort des Array-Namens
- 16. Html.Labelfor verwenden Display des Objekts nicht Eigentum
- 17. Javascript Referenzierung Werte innerhalb des Objekts es selbst
- 18. Verwenden der Klasse selbst als eine Methode
- 19. Dynamisch Pass Liste des Objekts als Parameter
- 20. Verwenden eines Objekts ohne Sammlung als DataSource
- 21. Ignorieren Selbst Teil des Selbst
- 22. Pfeilfunktion Rückgabeparameter als Eigenschaft des Objekts
- 23. Übergabe des gesamten Objekts gegen die Eigenschaft des Objekts
- 24. Viele-zu-viele Beziehung mit sich selbst kann das verwandte Namensattribut nicht verwenden
- 25. Warum ist String.equals() schneller als sich selbst?
- 26. JavaScript-Aufrufmethode des als Argument übergebenen Objekts
- 27. Den Namen des Objekts mit den Werten des Konstruktorarguments finden
- 28. Python - Verwenden Variable zum Aufruf des Objekts
- 29. Erhalte den Index des Objekts in der Liste basierend auf der Gleichheit des Status des Objekts
- 30. Wie kann ich den Speicherort des Arbeitsordners programmgesteuert ändern?
Hashtabellen ordnen Hashcodes normalerweise nicht direkt Tabellenindizes zu. Die Adresse ist normalerweise unveränderlich und einzigartig und kostet nichts zu berechnen, was sie zu einer handlichen Integer-ID macht. – pvg