Java LinkedHashSet Klasse: Ein freundlicher Leitfaden für Anfänger

Einführung

Hallo daar, zukünftige Java-Zauberer! Heute werden wir eine aufregende Reise in die Welt des Java LinkedHashSet 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.

Java - LinkedHashSet

Stell dir vor, du sammelst einzigartige Aufkleber für dein Album, aber du möchtest die Reihenfolge erinnern, in der du sie bekommst. Das ist im Grunde genommen, was eine LinkedHashSet in Java macht – es ist eine Sammlung, die einzigartige Elemente (wie deine Aufkleber) speichert und sich erinnert, in welcher Reihenfolge du sie hinzugefügt hast. Cool, nicht wahr?

Lass uns einsteigen und sehen, wie diese magische Sammlung funktioniert!

Klassendeklaration

In Java ist LinkedHashSet Teil des Pakets java.util. Um es zu verwenden, müssen wir es zuerst importieren. So geht das:

import java.util.LinkedHashSet;

Jetzt erstellen wir unseren ersten LinkedHashSet:

LinkedHashSet<String> meineAufkleber = new LinkedHashSet<>();

In diesem Beispiel haben wir einen LinkedHashSet erstellt, der String-Objekte speichert. Der -Teil teilt Java mit, welcher Typ von Elementen unser Set enthalten wird. Du kannst String durch einen anderen Typ ersetzen, wie Integer oder sogar deine eigenen benutzerdefinierten Klassen!

Parameter

LinkedHashSet hat keine eigenen spezifischen Parameter, aber es erbt einige von seinen Elternklassen. Die wichtigsten sind:

  1. initialCapacity: Die initialiale Kapazität des LinkedHashSet.
  2. loadFactor: Eine Maß für wie voll der LinkedHashSet sein kann, bevor er skaliert wird.

Mach dir keine zu großen Sorgen um diese im Moment. Java setzt gute Standardwerte, sodass du sie nicht angeben musst, es sei denn, du tust etwas sehr spezifisches.

Klassenkonstruktoren

LinkedHashSet bietet mehrere Konstruktoren. Lass uns die häufigsten anschauen:

  1. Standardkonstruktor:

    LinkedHashSet<String> set1 = new LinkedHashSet<>();

    Dies erstellt einen leeren LinkedHashSet mit der Standardinitialkapazität (16) und dem Lastfaktor (0.75).

  2. Konstruktor mit initialer Kapazität:

    LinkedHashSet<String> set2 = new LinkedHashSet<>(20);

    Dies erstellt einen leeren LinkedHashSet mit einer initialen Kapazität von 20.

  3. Konstruktor mit einer anderen Sammlung:

    ArrayList<String> liste = new ArrayList<>();
    liste.add("Rot");
    liste.add("Blau");
    LinkedHashSet<String> set3 = new LinkedHashSet<>(liste);

    Dies erstellt einen LinkedHashSet, der alle Elemente aus der gegebenen Sammlung (in diesem Fall liste) enthält.

Klassenmethoden

Jetzt schauen wir uns einige der nützlichsten Methoden des LinkedHashSet an. Ich werde sie in einer Tabelle für eine einfache Referenz präsentieren:

Methode Beschreibung
add(E e) Fügt das angegebene Element dem Set hinzu, wenn es noch nicht vorhanden ist
remove(Object o) Entfernt das angegebene Element aus dem Set, wenn es vorhanden ist
contains(Object o) Gibt true zurück, wenn das Set das angegebene Element enthält
size() Gibt die Anzahl der Elemente im Set zurück
clear() Entfernt alle Elemente aus dem Set
isEmpty() Gibt true zurück, wenn das Set keine Elemente enthält

Lass uns diese Methoden in Aktion sehen:

LinkedHashSet<String> farben = new LinkedHashSet<>();

// Hinzufügen von Elementen
farben.add("Rot");
farben.add("Grün");
farben.add("Blau");
System.out.println("Farben: " + farben);  // Ausgabe: Farben: [Rot, Grün, Blau]

// Hinzufügen eines Duplikats (wird nicht hinzugefügt)
farben.add("Rot");
System.out.println("Farben nach dem Hinzufügen eines Duplikats: " + farben);  // Ausgabe: Farben nach dem Hinzufügen eines Duplikats: [Rot, Grün, Blau]

// Überprüfen, ob ein Element existiert
System.out.println("Enthält Gelb? " + farben.contains("Gelb"));  // Ausgabe: Enthält Gelb? false

// Entfernen eines Elements
farben.remove("Grün");
System.out.println("Farben nach dem Entfernen von Grün: " + farben);  // Ausgabe: Farben nach dem Entfernen von Grün: [Rot, Blau]

// Ermitteln der Größe
System.out.println("Anzahl der Farben: " + farben.size());  // Ausgabe: Anzahl der Farben: 2

// Überprüfen, ob das Set leer ist
System.out.println("Ist das Set leer? " + farben.isEmpty());  // Ausgabe: Ist das Set leer? false

// Leeren des Sets
farben.clear();
System.out.println("Farben nach dem Leeren: " + farben);  // Ausgabe: Farben nach dem Leeren: []

Beispiel zum Abrufen eines Spliterator() zum Iterieren von Einträgen eines LinkedHashSet

Jetzt schauen wir uns eine fortgeschrittene Funktion an: den Spliterator. Es ist wie ein superbetonter Iterator, der für parallele Verarbeitung verwendet werden kann. Keine Sorge, wenn das kompliziert klingt – wir halten es einfach!

Hier ist ein Beispiel, wie man Spliterator mit LinkedHashSet verwendet:

LinkedHashSet<String> obst = new LinkedHashSet<>();
obst.add("Apfel");
obst.add("Banane");
obst.add("Kirsche");
obst.add("Dattel");

Spliterator<String> spliterator = obst.spliterator();

// Verwenden von Spliterator zum Drucken von Elementen
spliterator.forEachRemaining(obst -> System.out.println("Obst: " + obst));

Dieser Code wird ausgeben:

Obst: Apfel
Obst: Banane
Obst: Kirsche
Obst: Dattel

Die spliterator() Methode gibt einen Spliterator zurück, den wir verwenden können, um unseren LinkedHashSet zu iterieren. Die forEachRemaining() Methode wendet die angegebene Aktion auf jedes Element an. In diesem Fall geben wir jedes Obst aus.

Und so ist es! Du hast gerade die Grundlagen des Java LinkedHashSet gelernt. Denke daran, dass Praxis Makes Perfect ist, also mach dir keine Sorgen, mit diesen Konzepten zu experimentieren. Versuche, deinen eigenen LinkedHashSet zu erstellen und spiele mit seinen Methoden. Bevor du es wirst, bist du ein LinkedHashSet-Meister!

Happy coding, zukünftige Java-Sterne! ?

Credits: Image by storyset