Tauchen Sie ein in die Funktionsweise von HashMap in Java

HashMap-Grundlagen

HashMap<String, Integer> map = new HashMap<>();  
map.put("Sato", 22);  
map.put("Takahashi", 24);  
map.put("Nomura", 32); 

Wie funktioniert HashMap?

(1) Betrachten Sie ein Beispiel, in dem 5 HashMaps gespeichert werden können. (2) Versuche, `Schlüssel: Sato-Wert: 22``` zu speichern. Berechnen Sie den Hashwert 144 von Sato (dies ist eine geeignete Zahl, da es sich um ein Beispiel handelt). b. Teilen Sie 144 durch 5 der Anzahl der Elemente, um den Rest 144/5 = 28 ... 4 zu erhalten c. Speichern Sie den `Schlüssel: Sato-Wert: 22``` in 4.

[0]  
[1] [Nomura, 32]
[2]  
[3] [Takahashi, 24] 
[4] [Sato,22]

(3) Führen Sie beim Abrufen von Daten dieselbe Berechnung durch, um zu berechnen, wo die Zieldaten vom Schlüssel gespeichert sind. (4) Überschüssige Hash-Werte können kollidieren und mehrere Daten können am selben Ort gespeichert werden (Beispiel unten).

[0]  
[1] [Nomura, 32]
[2]  
[3] [Takahashi, 24] 
[4] [Sato,22] [Ito, 98]

In Bezug auf die Kapazitätserweiterung

--Wenn die Anzahl der Elemente zunimmt, wird eine erneute Aufbereitung durchgeführt, um die Anzahl der gespeicherten Elemente zu erhöhen. Im Fall von Java wird es basierend auf dem Lastkoeffizienten berechnet.

Verweise

https://www.javatpoint.com/working-of-hashmap-in-java

Recommended Posts

Tauchen Sie ein in die Funktionsweise von HashMap in Java
[Java] Wie Spring DI funktioniert
Deep Copy Collection in Java
Wie man JAVA in 7 Tagen lernt
Wie verwende ich Klassen in Java?
So benennen Sie Variablen in Java
Wie Speicher in objektorientierten Sprachen funktioniert
Funktionsweise von Arrays in Java (Abbildung)
So verketten Sie Zeichenfolgen mit Java
Lernen Sie Deep Learning von Grund auf in Java.
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
Erste Schritte für tiefes Lernen in Java
So führen Sie eine Basiskonvertierung in Java durch
Funktionsweise des Dispatcher-Servlets in Spring MVC
So erzwingen Sie Codierungskonventionen in Java
Einbetten von Janus Graph in Java
So erhalten Sie das Datum mit Java
Java-Leistung Kapitel 4 Funktionsweise des JIT-Compilers
So zeigen Sie eine Webseite in Java an
Wie man Rails allgemein ins Japanische übersetzt
So erhalten Sie eine Klasse von Element in Java
So verbergen Sie Nullfelder als Antwort in Java
[Java] Verstehe in 10 Minuten! Assoziatives Array und HashMap
[Deep Learning von Grund auf neu] in Java 3. Neuronales Netzwerk
So lösen Sie Ausdrucksprobleme in Java
Wie schreibe ich Java String # getBytes in Kotlin?
Wie viele ternäre Operatoren sind in Java zulässig?
Partisierung in Java
Java HashMap-Klasse
Änderungen in Java 11
Janken in Java
Umfangsrate in Java
FizzBuzz in Java
Wie jul-to-slf4j funktioniert
Aufrufen von Funktionen in großen Mengen mit Java Reflection
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
[Java] So lassen Sie den privaten Konstruktor in Lombok weg
Wie kann ich IBM Mainframe-Dateien in Java eingeben / ausgeben?
[Java] So erhalten Sie den Maximalwert von HashMap
[Persönliches Memo] Erstellen Sie eine einfache, tiefe Kopie mit Java
So erstellen Sie einen Daten-URI (base64) in Java
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
So konvertieren Sie eine Datei in ein Byte-Array in Java
So verwalten Sie Java EE-Projekte in Eclipse
Zusammenfassung der Implementierung von Standardargumenten in Java
Wie man altes Java (8er) in macOS 10.15 Catalina einfügt
Hinweise zur Verwendung regulärer Ausdrücke in Java