CodeGym /Java-Blog /Random-DE /LinkedHashMap in Java
John Squirrels
Level 41
San Francisco

LinkedHashMap in Java

Veröffentlicht in der Gruppe Random-DE

Was ist LinkedHashMap in Java?

Die LinkedHashMap- Klasse des Collections-Frameworks ist die Hashtable- und LinkedList- Implementierung der Map- Schnittstelle. Es speichert seine Einträge in einer Hashtable und verwendet intern eine doppelt verknüpfte Liste, um die Einfügereihenfolge beizubehalten. Diese LinkedList definiert die Einfügereihenfolge, also die Reihenfolge, in der Schlüssel in die Map eingefügt wurden . Die HashMap bot den Vorteil des schnellen Einfügens , Suchens und Löschens , aber in LinkedHashMap behält die Implementierung von LinkedList auch die Einfügungsreihenfolge bei. LinkedHashMap in Java - 1

Funktionen von LinkedHashMap

  1. Es enthält Werte basierend auf dem Schlüssel.
  2. Es enthält einzigartige Elemente.
  3. Es kann einen Nullschlüssel und mehrere Nullwerte haben.
  4. Es ist nicht synchronisiert.
  5. Die Einfügereihenfolge wird beibehalten, wodurch die Iteration teurer wird.

Leistungsfaktoren

Die Leistung der LinkedHashMap hängt hauptsächlich von zwei Faktoren ab, die im Folgenden beschrieben werden.

Kapazität

Die Kapazität bezeichnet die Anzahl der Einträge, die gespeichert werden können. Die Standardkapazität beträgt 16 , wenn kein Parameter angegeben wird. Ladefaktor Der Ladefaktor bedeutet, dass immer dann, wenn die HashMap bis zu einem bestimmten, als Parameter bereitgestellten Prozentsatz gefüllt ist, eine neue HashMap erstellt wird, die doppelt so groß ist, und alle Einträge in diese neue verschoben werden. Der Standardladefaktor für eine HashMap beträgt 0,75 . Es wird auch Füllverhältnis genannt .

Deklaration von LinkedHashMap

Um eine LinkedHashMap zu erstellen , müssen wir zunächst das Paket java.util.LinkedHashMap importieren .
LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
Hier ist Key der Typ der Schlüssel in der Karte. Wert ist der Typ der zugeordneten Werte in der Karte. 12 ist die Kapazität, was bedeutet, dass 12 Einträge in der Karte gespeichert werden. 0,5f ist der Auslastungsfaktor, was bedeutet, dass bei einer Belegung von 50 % eine neue Karte erstellt und alle Werte in diese neue verschoben werden.

Gängige Methoden von LinkedHashMap

Hier ist eine Liste einiger gängiger Methoden von LinkedHashMap .
Methoden Beschreibung
klar() Entfernt alle Zuordnungen in der Karte.
enthältWert(Objektwert) Gibt true zurück, wenn die Karte den Schlüssel dem angegebenen Wert zuordnet.
EintragSet() Gibt die Set-Ansicht der Zuordnungen in der Karte zurück.
get(Objektschlüssel) Gibt den Wert für den angegebenen Schlüssel zurück oder null, wenn kein Schlüssel angegeben ist.
Schlüsselsatz() Gibt die Set-Ansicht der Schlüssel in der Karte zurück.
Werte() Gibt die Sammlungsansicht der Werte in der Karte zurück.
getOrDefault(Objektschlüssel, V defaultValue) Gibt den Wert zurück, dem der angegebene Schlüssel zugeordnet ist, oder defaultValue, wenn kein Schlüssel zugeordnet ist.

LinkedHasMap-Beispiel

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of odd numbers
        LinkedHashMap<String, Integer> oddNumbers = new LinkedHashMap<>();
        // Using the put() method
        oddNumbers.put("One", 1);
        oddNumbers.put("Three", 3);
        System.out.println("LinkedHashMap1: " + oddNumbers);

        // Creating another LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("Two", 2);
        // Using putAll() method
        numbers.putAll(oddNumbers);
        System.out.println("LinkedHashMap2: " + numbers);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());

        // Using keySet() method
        System.out.println("Keys: " + numbers.keySet());

        // Using values() method
        System.out.println("Values: " + numbers.values());

        // Using get() method
        int value1 = numbers.get("Three");
        System.out.println("Returned Number: " + value1);

        // Using getOrDefault() method
        int value2 = numbers.getOrDefault("Five", 5);
        System.out.println("Returned Number: " + value2);

        // Using remove() method
        int value = numbers.remove("Two");
        System.out.println("Removed value: " + value);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());
    }
}

Ausgabe

LinkedHashMap1: {Eins=1, Drei=3} LinkedHashMap2: {Zwei=2, Eins=1, Drei=3} Schlüssel/Wert-Zuordnungen: [Zwei=2, Eins=1, Drei=3] Schlüssel: [Zwei, Eins , Drei] Werte: [2, 1, 3] Zurückgegebene Zahl: 3 Zurückgegebene Zahl: 5 Entfernter Wert: 2 Schlüssel-/Wertzuordnungen: [Eins=1, Drei=3]

LinkedHashMap vs. HashMap

Sehen wir uns einige Unterschiede zwischen ihnen an, wobei beide die Map- Schnittstelle implementieren.
  1. LinkedHashMap behält die Einfügereihenfolge bei, während es die doppelt verknüpfte Liste intern implementiert.
  2. LinkedHashMap benötigt mehr Speicherplatz, da es LinkedList implementiert .
  3. Bezüglich der Leistung ist LinkedHashMap langsamer als HashMap .

Abschluss

Wir hoffen, dass Sie die LinkedHashMap- Klasse in Java, ihre verschiedenen Methoden und ihre Implementierung verstehen . Fühlen Sie sich frei, zu üben und zurückzukommen, wann immer Sie weitere Unterstützung benötigen. Viel Spaß beim Lernen!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION