Interne Implementierung von java.util.HashMap und HashSet

Ich habe versucht, die interne Implementierung von zu verstehenjava.util.HashMap undjava.util.HashSet.

Im Folgenden sind die Zweifel, die für eine Weile in meinem Kopf auftauchen:

Was ist die Bedeutung der@Override public int hashcode() in einer HashMap / HashSet? Wo wird dieser Hash-Code intern verwendet?Ich habe allgemein gesehen, dass der Schlüssel der HashMap ein istString mögenmyMap<String,Object>. Kann ich die Werte gegen abbildensomeObject (anstelle von String) wiemyMap<someObject, Object>? Welche Verträge muss ich einhalten, damit dies erfolgreich abläuft?

Danke im Voraus !

BEARBEITEN:

Wollen wir damit sagen, dass der Hash-Code des Schlüssels (check!) Das ist, gegen das der Wert in der Hash-Tabelle abgebildet wird? Und wenn wir es tunmyMap.get(someKey); Java ruft intern ansomeKey.hashCode() Soll die Zahl in der Hash-Tabelle nach dem resultierenden Wert durchsucht werden?

Antworten: Ja.

EDIT 2:

In einemjava.util.HashSetWoher wird der Schlüssel für die Hash-Tabelle generiert? Ist es von dem Objekt, das wir hinzufügen, z.mySet.add(myObject); dannmyObject.hashCode() wird entscheiden, wo dies in der Hash-Tabelle platziert wird? (da wir in einem HashSet keine Schlüssel vergeben).

Antworten: Das hinzugefügte Objekt wird zum Schlüssel. Der Wert ist Dummy!

Antworten auf die Frage(9)

Ihre Antwort auf die Frage