Java LinkedHashMap Klasse: Ein freundlicher Leitfaden für Anfänger
Einführung
Hallo daar, zukünftige Java-Zauberer! Heute werden wir eine spannende Reise in die Welt der LinkedHashMap antreten. Keine Sorge, wenn du noch nie einen Codezeilen geschrieben hast – ich werde dein freundlicher Guide sein, und wir werden dieses Thema gemeinsam Schritt für Schritt erkunden. Am Ende dieses Tutorials wirst du erstaunt sein, wie viel du gelernt hast!
LinkedHashMap ist wie eine magische Box, die deine Artikel (wir nennen sie in der Programmierung Schlüssel-Wert-Paare) in einer bestimmten Reihenfolge speichern kann. Stell dir vor, du organisiere deine Lieblingsbücher auf einem Regal. Nicht nur kannst du schnell jedes Buch finden, das du möchtest, sondern du kannst sie auch in der Reihenfolge behalten, in der du sie hinzugefügt hast, oder basierend darauf, wie oft du sie liest. Genau das macht die LinkedHashMap für unsere Daten!
Klassendeklaration
Lassen Sie uns damit beginnen, wie man eine LinkedHashMap in Java deklariert:
import java.util.LinkedHashMap;
public class MeinLinkedHashMapBeispiel {
public static void main(String[] args) {
LinkedHashMap<String, Integer> meinBücherregal = new LinkedHashMap<>();
}
}
In diesem Beispiel erstellen wir eine LinkedHashMap namens meinBücherregal
. Der Teil <String, Integer>
teilt Java mit, dass wir String-Schlüssel (Buchtitel) und Integer-Werte (vielleicht die Anzahl der Seiten) verwenden. Keine Sorge, wenn das jetzt verwirrend aussieht – wir werden das im Laufe der Zeit aufbrechen!
Parameter
Beim Arbeiten mit LinkedHashMap haben wir einige Parameter zu berücksichtigen:
- initialCapacity: Dies ist wie die Entscheidung, wie groß dein Bücherregal initial sein sollte.
- loadFactor: Stell dir vor, wie voll dein Bücherregal werden kann, bevor du ein größeres benötigst.
- accessOrder: Dies bestimmt, ob deine Bücher nach dem Hinzufügen oder nach der Häufigkeit des Zugriffs angeordnet werden.
Sehen wir uns ein Beispiel an:
LinkedHashMap<String, Integer> meinBücherregal = new LinkedHashMap<>(16, 0.75f, true);
Hier sagen wir, dass unser initialles Bücherregal 16 Bücher halten kann, wir einen größeren Regal in Betracht ziehen, wenn es zu 75% voll ist, und wir die Bücher basierend auf der Häufigkeit des Zugriffs anordnen möchten.
Klassenkonstruktoren
LinkedHashMap bietet mehrere Möglichkeiten, unser magisches Bücherregal zu erstellen. Hier sind die Hauptkonstruktoren:
-
LinkedHashMap()
: Erstellt eine leere LinkedHashMap mit Standardeinstellungen. -
LinkedHashMap(int initialCapacity)
: Gibt die initial Capacity an. -
LinkedHashMap(int initialCapacity, float loadFactor)
: Gibt sowohl die initial Capacity als auch den Load Factor an. -
LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
: Gibt alle drei Parameter an. -
LinkedHashMap(Map<? extends K, ? extends V> m)
: Erstellt eine LinkedHashMap mit denselben Mappings wie die angegebene Karte.
Lassen Sie uns versuchen, LinkedHashMaps mit verschiedenen Konstruktoren zu erstellen:
LinkedHashMap<String, Integer> regal1 = new LinkedHashMap<>();
LinkedHashMap<String, Integer> regal2 = new LinkedHashMap<>(20);
LinkedHashMap<String, Integer> regal3 = new LinkedHashMap<>(20, 0.8f);
LinkedHashMap<String, Integer> regal4 = new LinkedHashMap<>(20, 0.8f, true);
Map<String, Integer> existingMap = new HashMap<>();
existingMap.put("Java Basics", 200);
LinkedHashMap<String, Integer> regal5 = new LinkedHashMap<>(existingMap);
Jeder dieser erstellt ein leicht unterschiedliches "Bücherregal" basierend auf unseren Bedürfnissen. Ist es nicht erstaunlich, wie flexibel Java ist?
Klassenmethoden
Nun schauen wir uns einige der am häufigsten verwendeten Methoden in LinkedHashMap an. Ich werde sie in einer Tabellenform für eine einfache Referenz präsentieren:
Methode | Beschreibung |
---|---|
put(K key, V value) |
Fügt ein neues Schlüssel-Wert-Paar zur LinkedHashMap hinzu |
get(Object key) |
Ruft den Wert ab, der dem angegebenen Schlüssel zugeordnet ist |
remove(Object key) |
Entfernt die Zuordnung für den angegebenen Schlüssel |
clear() |
Entfernt alle Zuordnungen von der LinkedHashMap |
size() |
Gibt die Anzahl der Schlüssel-Wert-Paare in der LinkedHashMap zurück |
isEmpty() |
Gibt true zurück, wenn die LinkedHashMap leer ist |
containsKey(Object key) |
Gibt true zurück, wenn die LinkedHashMap den angegebenen Schlüssel enthält |
containsValue(Object value) |
Gibt true zurück, wenn die LinkedHashMap den angegebenen Wert enthält |
keySet() |
Gibt ein Set aller Schlüssel in der LinkedHashMap zurück |
values() |
Gibt eine Sammlung aller Werte in der LinkedHashMap zurück |
entrySet() |
Gibt ein Set aller Schlüssel-Wert-Paare in der LinkedHashMap zurück |
Sehen wir uns einige dieser Methoden in Aktion an:
LinkedHashMap<String, Integer> meinBücherregal = new LinkedHashMap<>();
// Bücher zu unserem Regal hinzufügen
meinBücherregal.put("Java Basics", 200);
meinBücherregal.put("Data Structures", 350);
meinBücherregal.put("Algorithms", 400);
// Die Anzahl der Seiten für "Java Basics" abrufen
int javaSeiten = meinBücherregal.get("Java Basics");
System.out.println("Java Basics hat " + javaSeiten + " Seiten.");
// Überprüfen, ob wir ein Buch über Python haben
boolean hatPython = meinBücherregal.containsKey("Python for Beginners");
System.out.println("Haben wir ein Python-Buch? " + hatPython);
// Das Algorithms-Buch entfernen
meinBücherregal.remove("Algorithms");
// Alle Buchtitel drucken
for (String titel : meinBücherregal.keySet()) {
System.out.println("Buchtitel: " + titel);
}
Dieser Codeabschnitt zeigt, wie wir Bücher zu unserem Regal hinzufügen, Informationen darüber abrufen, überprüfen, ob wir bestimmte Bücher haben, Bücher entfernen und alle Bücher aufzählen, die wir haben. Ziemlich praktisch, nicht wahr?
Vererbte Methoden
LinkedHashMap vererbt auch Methoden von ihren Elternklassen. Hier sind einige wichtige:
Vererbt von | Methoden |
---|---|
HashMap |
clone() , compute() , computeIfAbsent() , computeIfPresent() , merge()
|
AbstractMap |
equals() , hashCode() , toString()
|
Object |
finalize() , getClass() , notify() , notifyAll() , wait()
|
Diese vererbten Methoden bieten zusätzliche Funktionen, die in bestimmten Situationen sehr nützlich sein können.
Beispiel zum Abrufen eines Wertes aus der LinkedHashMap
Lassen Sie uns mit einem vollständigen Beispiel abrunden, bei dem wir eine LinkedHashMap erstellen, einige Werte hinzufügen und diese abrufen:
import java.util.LinkedHashMap;
public class BücherregalBeispiel {
public static void main(String[] args) {
LinkedHashMap<String, Integer> meinBücherregal = new LinkedHashMap<>();
// Bücher zu unserem Regal hinzufügen
meinBücherregal.put("Java Basics", 200);
meinBücherregal.put("Data Structures", 350);
meinBücherregal.put("Algorithms", 400);
// Informationen zu jedem Buch abrufen und ausgeben
for (String titel : meinBücherregal.keySet()) {
int seiten = meinBücherregal.get(titel);
System.out.println("Das Buch '" + titel + "' hat " + seiten + " Seiten.");
}
// Ein bestimmtes Buch abrufen
String buchZuFinden = "Data Structures";
if (meinBücherregal.containsKey(buchZuFinden)) {
int seiten = meinBücherregal.get(buchZuFinden);
System.out.println("\nGefunden! '" + buchZuFinden + "' hat " + seiten + " Seiten.");
} else {
System.out.println("\nEntschuldigung, wir haben '" + buchZuFinden + "' nicht auf unserem Regal.");
}
}
}
Ausgabe
Wenn du diesen Code ausführst, wirst du eine Ausgabe ähnlich dieser sehen:
Das Buch 'Java Basics' hat 200 Seiten.
Das Buch 'Data Structures' hat 350 Seiten.
Das Buch 'Algorithms' hat 400 Seiten.
Gefunden! 'Data Structures' hat 350 Seiten.
Und da hast du es! Du hast gerade dein eigenes digitales Bücherregal mit LinkedHashMap erstellt. Du kannst Bücher hinzufügen, herausfinden, wie viele Seiten sie haben, und sogar überprüfen, ob ein bestimmtes Buch auf deinem Regal ist. Ist Programmierung nicht erstaunlich?
Denke daran, genau wie beim Organisieren eines realen Bücherregals, je mehr du mit LinkedHashMap übst, desto mehr wirst du dich daran wohlfühlen. Hab keine Angst, zu experimentieren und verschiedene Dinge auszuprobieren. Happy coding, zukünftige Java-Experten!
Credits: Image by storyset