Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java LinkedHashMap

Java LinkedHashMap

In diesem Tutorial lernen wir die Klasse Java LinkedHashMap und ihre Operationen anhand von Beispielen kennen.

Der LinkedHashMap -Klasse des Java-Collections-Frameworks stellt die Implementierung der Hash-Tabelle und der verketteten Liste der Map-Schnittstelle bereit.

Die LinkedHashMap -Schnittstelle erweitert die HashMap-Klasse, um ihre Einträge in einer Hash-Tabelle zu speichern. Es unterhält intern eine doppelt verknüpfte Liste unter all seinen Einträgen, um seine Einträge zu ordnen.


Erstellen einer LinkedHashMap

Um eine verknüpfte Hashmap zu erstellen, müssen wir den java.util.LinkedHashMap importieren Paket zuerst. Sobald wir das Paket importiert haben, können wir wie folgt verknüpfte Hashmaps in Java erstellen.

// LinkedHashMap with initial capacity 8 and load factor 0.6
LinkedHashMap<Key, Value> numbers = new LinkedHashMap<>(8, 0.6f);

Im obigen Code haben wir eine verknüpfte Hashmap mit dem Namen numbers erstellt .

Hier,

Beachten Sie den Teil new LinkedHashMap<>(8, 0.6) . Hier ist der erste Parameter Kapazität und der zweite Parameter ist loadFactor .

Standardkapazität und Ladefaktor

Es ist möglich, eine verknüpfte Hashmap zu erstellen, ohne deren Kapazität und Lastfaktor zu definieren. Zum Beispiel

//LinkedHashMap with default capacity and load factor
LinkedHashMap<Key, Value> numbers1 = new LinkedHashMap<>();

Standardmäßig

Hinweis :Die LinkedHashMap Klasse erlaubt es uns auch, die Reihenfolge ihrer Einträge zu definieren. Zum Beispiel

// LinkedHashMap with specified order
LinkedHashMap<Key, Value> numbers2 = new LinkedHashMap<>(capacity, loadFactor, accessOrder);

Hier accessOrder ist ein boolescher Wert. Sein Standardwert ist false . In diesem Fall werden Einträge in der verlinkten Hashmap nach ihrer Insertion Order geordnet.

Wenn jedoch true wird als accessOrder übergeben , werden die Einträge in der verknüpften Hashmap vom zuletzt aufgerufenen zum zuletzt aufgerufenen geordnet.


LinkedHashMap aus anderen Karten erstellen

So können wir eine verknüpfte Hashmap erstellen, die alle Elemente anderer Karten enthält.

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of even numbers
        LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();
        evenNumbers.put("Two", 2);
        evenNumbers.put("Four", 4);
        System.out.println("LinkedHashMap1: " + evenNumbers);

        // Creating a LinkedHashMap from other LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>(evenNumbers);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap2: " + numbers);
    }
}

Ausgabe

LinkedHashMap1: {Two=2, Four=4}
LinkedHashMap2: {Two=2, Four=4, Three=3}

Methoden von LinkedHashMap

Die LinkedHashMap Die Klasse stellt Methoden bereit, mit denen wir verschiedene Operationen auf der Karte ausführen können.


Elemente in LinkedHashMap einfügen

Zum Beispiel


import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating LinkedHashMap of even numbers
        LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();

        // Using put()
        evenNumbers.put("Two", 2);
        evenNumbers.put("Four", 4);
        System.out.println("Original LinkedHashMap: " + evenNumbers);

        // Using putIfAbsent()
        evenNumbers.putIfAbsent("Six", 6);
        System.out.println("Updated LinkedHashMap(): " + evenNumbers);

        //Creating LinkedHashMap of numbers
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);

        // Using putAll()
        numbers.putAll(evenNumbers);
        System.out.println("New LinkedHashMap: " + numbers);
    }
}

Ausgabe

Original LinkedHashMap: {Two=2, Four=4}
Updated LinkedHashMap: {Two=2, Four=4, Six=6}
New LinkedHashMap: {One=1, Two=2, Four=4, Six=6}

Zugriff auf LinkedHashMap-Elemente

1. Mit entrySet(), keySet() und values()

Zum Beispiel

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();

        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

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

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

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

Ausgabe

LinkedHashMap: {One=1, Two=2, Three=3}
Key/Value mappings: [One=1, Two=2, Three=3]
Keys: [One, Two, Three]
Values: [1, 2, 3]

2. Verwenden von get() und getOrDefault()

Zum Beispiel

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {

        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

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

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

Ausgabe

LinkedHashMap: {One=1, Two=2, Three=3}
Returned Number: 3
Returned Number: 5

LinkedHashMap-Elemente entfernt

Zum Beispiel

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {

        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

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

        // remove method with two parameters
        boolean result = numbers.remove("Three", 3);
        System.out.println("Is the entry Three removed? " + result);

        System.out.println("Updated LinkedHashMap: " + numbers);
    }
}

Ausgabe

LinkedHashMap: {One=1, Two=2, Three=3}
Removed value: 2
Is the entry {Three=3} removed? True
Updated LinkedHashMap: {One=1}

Andere Methoden von LinkedHashMap

Methode Beschreibung
clear() entfernt alle Einträge aus der Karte
containsKey() überprüft, ob die Map den angegebenen Schlüssel enthält und gibt einen booleschen Wert zurück
containsValue() überprüft, ob die Karte den angegebenen Wert enthält und gibt einen booleschen Wert zurück
size() gibt die Größe der Karte zurück
isEmpty() überprüft, ob die Map leer ist und gibt einen booleschen Wert zurück

LinkedHashMap vs. HashMap

Sowohl die LinkedHashMap und der HashMap implementiert den Map Schnittstelle. Es gibt jedoch einige Unterschiede zwischen ihnen.


Java

  1. Java-Operatoren
  2. Java-Kommentare
  3. Java for-each-Schleife
  4. Java-Strings
  5. Java-Schnittstelle
  6. Anonyme Java-Klasse
  7. Java-Versuch-mit-Ressourcen
  8. Java-Anmerkungen
  9. Java-Assertionen
  10. Java-Vektor