linkedhashmap java linkedhashmap example implementation
Dieses Tutorial erklärt alles über LinkedHashMap in Java, einschließlich LinkedHashMap-Beispiel und -Methoden, Implementierung in Java, LinkedHashMap vs HashMap:
LinkedHashMap in Java ist eine Implementierung, die die Implementierung von HashTable und LinkedList kombiniert. Es implementiert die Map-Schnittstelle. Die Schlüssel-Wert-Paare von LinkedHashMap haben eine vorhersagbare Reihenfolge der Iteration.
Neben der Map-Schnittstelle erweitert LinkedHashMap auch die HashMap-Klasse.
=> Besuchen Sie hier, um die Java-Schulungsreihe für alle zu sehen.
Sortierbefehl unter Linux mit Beispielen
Was du lernen wirst:
LinkedHashMap In Java
Einige der Hauptmerkmale von LinkedHashMap sind:
- Es enthält schlüsselbasierte Werte.
- Behält die Reihenfolge des Einfügens von Schlüssel-Wert-Paaren bei.
- Es erlaubt keine Duplikate, es hat eindeutige Elemente.
- Es kann einen einzelnen Nullschlüssel haben. Es sind jedoch mehrere Nullwerte zulässig.
- Java LinkedHashMap ist nicht synchronisiert.
Deklaration von LinkedHashMap
Die LinkedHashMap-Klasse in Java ist Teil des Pakets java.util.
Die allgemeine Deklaration dieser Klasse in Java lautet wie folgt:
public class LinkedHashMap extends HashMap implements Map
Hier K => Schlüsseltyp in der Karte.
V => Art der Werte, die den Schlüsseln zugeordnet sind.
Die Klassenhierarchie von LinkedHashMap wird unten gezeigt:
Wie im obigen Diagramm gezeigt, erbt LinkedHashMap die HashMap- und AbstractMap-Klasse und implementiert die Map-Schnittstelle.
LinkedHashMap Beispiel
Im Folgenden finden Sie ein einfaches Beispiel.
import java.util.*; class Main{ public static void main(String args()){ //declare and initialize LinkedHashMap LinkedHashMap num_map=new LinkedHashMap(); num_map.put(1,'ONE'); num_map.put(2,'TWO'); num_map.put(3,'THREE'); num_map.put(4,'FOUR'); num_map.put(5,'FIVE'); System.out.println('The contents of LinkedHashMap:'); //retrieve the key-value pairs as set using entrySet & print each entry for(Map.Entry m:num_map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Ausgabe:
Der Inhalt von LinkedHashMap:
1 EINS
2 ZWEI
3 DREI
4 VIER
5 FÜNF
Konstruktoren und Methoden
Lassen Sie uns die Konstruktoren und Methoden diskutieren, die von der LinkedHashMap-Klasse bereitgestellt werden. Zuerst werden wir die Konstruktoren diskutieren, denen Methoden folgen.
Konstruktoren
Konstruktor-Prototyp | Beschreibung | |
---|---|---|
Schlüsselsatz | Setze keySet () | Gibt einen Schlüsselsatz in der Karte zurück. |
LinkedHashMap () | Standardkonstruktor für LinkedHashMap. | |
LinkedHashMap (int Kapazität) | Erstellt ein LinkedHashMap-Objekt mit einer bestimmten Kapazität. | |
LinkedHashMap (int Kapazität, float loadFactor) | Erstellt ein LinkedHashMap-Objekt mit der angegebenen Kapazität und dem angegebenen loadFactor. | |
LinkedHashMap (int Kapazität, float loadFactor, boolean accessOrder) | Erstellt ein LinkedHashMap-Objekt mit einer bestimmten Kapazität und einem bestimmten loadFactor. Außerdem wird der Bestellmodus (accessOrder) angegeben. | |
LinkedHashMap (Karte m) | Erstellt ein LinkedHashMap-Objekt und initialisiert es mit den als Argument übergebenen Werten aus der Map m. |
Methoden
Methode | Methodenprototyp | Beschreibung |
---|---|---|
erhalten | V get (Objektschlüssel) | Gibt den Wert für den angegebenen Schlüssel zurück. |
klar | void clear () | Löscht alle Schlüssel-Wert-Paare in der Karte. |
enthältWert | Boolescher Wert enthältWert (Objektwert) | Überprüft, ob die Karte einen oder mehrere Schlüssel enthält, die dem angegebenen Wert zugeordnet sind. Gibt true zurück, wenn ja. |
entrySet | einstellen | Gibt eine Reihe von Einträgen in der Karte zurück. |
für jedes | void forEach (BiConsumer-Aktion) | Führt die angegebene Aktion für alle Einträge in der Karte aus. |
getOrDefault | V getOrDefault (Objektschlüssel, V defaultValue) | Gibt den dem Schlüssel zugeordneten Wert zurück. Wenn kein Wert zugeordnet ist, wird der Standardwert zurückgegeben. |
removeEldestEntry | protected boolean removeEldestEntry (Map.Entry älteste) | Entfernt den ältesten Eintrag in der Karte und gibt beim Entfernen true zurück. |
alles ersetzen | void replaceAll (BiFunction-Funktion) | Ruft die angegebene Funktion für jeden Eintrag auf und ersetzt das Ergebnis der Funktion durch die Werte. |
Werte | Sammlungswerte () | Gibt die Sammlung von Werten in der Karte zurück. |
Implementierung in Java
Das folgende Java-Programm zeigt die Implementierung von LinkedHashMap anhand der oben beschriebenen Methoden.
wie man einem Array in Java hinzufügt
import java.util.*; public class Main { public static void main(String a()) { //declare LinkedHashMap and initialize it with values LinkedHashMap colors_map = new LinkedHashMap(); colors_map.put('one', 'Red'); colors_map.put('two', 'Green'); colors_map.put('three', 'Blue'); // Original LinkedHashMap System.out.println('Original LinkedHashMap:' + colors_map); //isEmpty () System.out.println('LinkedHashMap 'colors_map' empty?:' + colors_map.isEmpty()); //size () System.out.println('Size of the map: ' + colors_map.size()); //get () System.out.println('Value for key = 'one':' + colors_map.get('one')); //containsKey () System.out.println('colors_map contains key = 'two':'+ colors_map.containsKey('two')); //containsValue () System.out.println('colors_map contains value 'ree':' + colors_map.containsValue('ree')); //remove () System.out.println('delete element 'one': ' + colors_map.remove('one')); System.out.println('Updated colors_map:' + colors_map); } }
Ausgabe:
Original LinkedHashMap: {eins = Rot, zwei = Grün, drei = Blau}
LinkedHashMap 'colours_map' leer ?: False
Größe der Karte: 3
Wert für Schlüssel = 'Eins': Rot
colours_map enthält key = 'two': true
colours_map enthält den Wert 'ree': false
Element 'Eins' löschen: Rot
Aktualisierte Farbenkarte: {zwei = Grün, drei = Blau}
In diesem Programm deklarieren wir eine Farbkarte und initialisieren sie. Dann verwenden wir die verschiedenen oben diskutierten Methoden, um die Ergebnisse zu erhalten.
LinkedHashMap gegen HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
Die zeitliche Komplexität grundlegender Operationen | O (1) | O (1) | O (1) |
Implementiert geordnete Karten. | Implementiert ungeordnete Karten. | ||
Verwendet eine doppelt verknüpfte Liste von Eimern. | Verwendet eine Hash-Tabelle. | ||
Behält die Reihenfolge beim Iterieren der Elemente bei. | Behält die Reihenfolge beim Iterieren nicht bei. | ||
Benötigt mehr Speicher. | Benötigt weniger Speicher als LinkedHashMap. | ||
Grundlegende Vorgänge wie Hinzufügen, Entfernen, Suchen usw. sind langsamer. | Grundlegende Vorgänge wie das Hinzufügen und Entfernen der Suche sind schneller. |
HashMap gegen TreeMap gegen LinkedHashMap
Vergleichen wir nun die drei Kartenimplementierungen, nämlich HashMap, TreeMap und LinkedHashMap.
Die folgende Tabelle zeigt den Vergleich / Unterschied.
Vergleichsparameter | HashMap | LinkedHashMap | Baumkarte |
---|---|---|---|
Schnittstelle | Karte | Karte | Map, SortedMap, NavigableMap |
Datenstruktur | Liste der Eimer | Doppelte verknüpfte Liste von Eimern | Rot-schwarzer Baum |
Iterationsreihenfolge | Keine Bestellung gepflegt. | Sortiert nach Einfügereihenfolge | Sortiert nach der natürlichen Reihenfolge der Elemente |
Nullschlüssel | Sind erlaubt | Sind erlaubt | Nicht erlaubt |
Synchronisation | Nicht synchronisiert | Nicht synchronisiert | Nicht synchronisiert |
Schlüsselanforderung | Die Methoden equals () und hashCode () müssen überschrieben werden | Die Methoden equals () und hashCode () müssen überschrieben werden | Die natürliche Reihenfolge bleibt erhalten oder es muss ein Komparator geliefert werden |
Häufig gestellte Fragen
F # 1) Was ist LinkedHashMap in Java?
Antworten: LinkedHashMap in Java wird als Kombination aus HashTable und LinkedList implementiert. Es implementiert die Kartenschnittstelle. Es hat eine vorhersehbare Iterationsreihenfolge. Es verwendet intern eine doppelt verknüpfte Liste für Einträge.
Q # 2)Wie funktioniert LinkedHashMap in Java?
Antworten: Es ähnelt HashMap, unterscheidet sich jedoch von HashMap in der Reihenfolge der Einfügung, die von LinkedHashMap beibehalten wird. Die Elemente in der LinkedHashMap werden genauso gespeichert, wie sie in die Datenstruktur eingegeben wurden.
Q # 3)Wie durchlaufe ich eine LinkedHashMap?
Antworten: Wir können eine LinkedHashMap mit einem Iterator durchlaufen.
Im Folgenden finden Sie die Schritte, die Sie ausführen können, um die LinkedHashMap mit dem Iterator zu durchlaufen:
c ++ zufällig zwischen 0 und 1
- Erstellen Sie ein neues LinkedHashMap-Objekt.
- Verwenden Sie die Put-API-Methode, um Schlüssel-Wert-Paare in die Karte einzufügen.
- Rufen Sie die API-Methode entrySet () auf, um eine Reihe von Schlüssel-Wert-Paaren in der Zuordnung abzurufen.
- Rufen Sie den Iterator für diesen Satz auf, um jedes Schlüssel-Wert-Paar mit den API-Methoden getKey () und getValue () abzurufen.
Q # 4)Was ist die Verwendung von LinkedHashMap in Java?
Antworten: Die Hauptverwendung von LinkedHashMap in Java besteht darin, die Einfügereihenfolge beizubehalten. Es kann auch verwendet werden, um die Zugriffsreihenfolge beizubehalten, mit der auf die Schlüssel zugegriffen wird. Da es schneller als HashMap ist, kann LinkedHashMap anstelle von HashMap verwendet werden, wo die Leistung kritisch ist.
Q # 5)Ist HashMap schneller als LinkedHashMap?
Antworten: Beide sind in der Leistung ähnlich. HashMap benötigt im Vergleich zu LinkedHashMap weniger Speicher, da HashMap die Zugriffsreihenfolge nicht beibehält. Somit ist HashMap vergleichsweise schneller.
Fazit
In diesem Tutorial haben wir die LinkedHashMap in Java besprochen. Wir haben die Details bezüglich Klassendeklaration, Klassenhierarchie, Konstruktoren und Methoden gesehen.
Wir haben auch die Hauptunterschiede zwischen LinkedHashMap und HashMap kennengelernt. Wir haben auch den 3-Wege-Unterschied zwischen LinkedHashMap, HashMap und TreeMap diskutiert.
In unserem nächsten Tutorial werden wir weitere Themen zu Java Collection Framework untersuchen.
=> Sehen Sie sich hier die einfache Java-Schulungsreihe an.
Literatur-Empfehlungen
- Java Reflection Tutorial mit Beispielen
- Ausführliche Eclipse-Tutorials für Anfänger
- Was ist eine Java-HashTable? Implementierung und Beispiel einer HashTable
- JAVA-Tutorial für Anfänger: Über 100 praktische Java-Video-Tutorials
- Zugriffsmodifikatoren in Java - Tutorial mit Beispielen
- Java SWING Tutorial: Container-, Komponenten- und Ereignisbehandlung
- Java String enthält () Method Tutorial mit Beispielen
- Java String mit String Buffer und String Builder Tutorial