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

Java LinkedHashSet

Java LinkedHashSet

In diesem Tutorial lernen wir die Java-Klasse LinkedHashSet und ihre Methoden anhand von Beispielen kennen.

Der LinkedHashSet Klasse des Java-Collections-Frameworks bietet Funktionalitäten sowohl der Hashtabelle als auch der Linked-List-Datenstruktur.

Es implementiert die Set-Schnittstelle.

Elemente von LinkedHashSet werden ähnlich wie HashSet in Hash-Tabellen gespeichert.

Verknüpfte Hash-Sets führen jedoch intern eine doppelt verknüpfte Liste für alle ihre Elemente. Die verknüpfte Liste definiert die Reihenfolge, in der Elemente in Hash-Tabellen eingefügt werden.


Erstellen Sie ein LinkedHashSet

Um ein verknüpftes Hash-Set zu erstellen, müssen wir den java.util.LinkedHashSet importieren Paket zuerst.

Sobald wir das Paket importiert haben, können wir wie folgt verknüpfte Hash-Sets in Java erstellen.

// LinkedHashSet with 8 capacity and 0.75 load factor
LinkedHashSet<Integer> numbers = new LinkedHashSet<>(8, 0.75);

Hier haben wir ein verknüpftes Hash-Set mit dem Namen numbers erstellt .

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

Standardkapazität und Ladefaktor

Es ist möglich, ein verknüpftes Hash-Set zu erstellen, ohne seine Kapazität und seinen Lastfaktor zu definieren. Zum Beispiel

// LinkedHashSet with default capacity and load factor
LinkedHashSet<Integer> numbers1 = new LinkedHashSet<>();

Standardmäßig


LinkedHashSet aus anderen Sammlungen erstellen

So können wir ein verknüpftes Hash-Set erstellen, das alle Elemente anderer Sammlungen enthält.

import java.util.LinkedHashSet;
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        // Creating an arrayList of even numbers
        ArrayList<Integer> evenNumbers = new ArrayList<>();
        evenNumbers.add(2);
        evenNumbers.add(4);
        System.out.println("ArrayList: " + evenNumbers);

        // Creating a LinkedHashSet from an ArrayList
        LinkedHashSet<Integer> numbers = new LinkedHashSet<>(evenNumbers);
        System.out.println("LinkedHashSet: " + numbers);
    }
}

Ausgabe

ArrayList: [2, 4]
LinkedHashSet: [2, 4]

Methoden von LinkedHashSet

Die LinkedHashSet Die Klasse stellt Methoden bereit, mit denen wir verschiedene Operationen mit dem verknüpften Hash-Set ausführen können.


Elemente in LinkedHashSet einfügen

Zum Beispiel

import java.util.LinkedHashSet;

class Main {
    public static void main(String[] args) {
        LinkedHashSet<Integer> evenNumber = new LinkedHashSet<>();

        // Using add() method
        evenNumber.add(2);
        evenNumber.add(4);
        evenNumber.add(6);
        System.out.println("LinkedHashSet: " + evenNumber);

        LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
        
        // Using addAll() method
        numbers.addAll(evenNumber);
        numbers.add(5);
        System.out.println("New LinkedHashSet: " + numbers);
    }
}

Ausgabe

LinkedHashSet: [2, 4, 6]
New LinkedHashSet: [2, 4, 6, 5]

Zugriff auf LinkedHashSet-Elemente

Um auf die Elemente eines verknüpften Hash-Sets zuzugreifen, können wir den iterator() verwenden Methode. Um diese Methode zu verwenden, müssen wir den java.util.Iterator importieren Paket. Zum Beispiel

import java.util.LinkedHashSet;
import java.util.Iterator;

class Main {
    public static void main(String[] args) {
        LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("LinkedHashSet: " + numbers);

        // Calling the iterator() method
        Iterator<Integer> iterate = numbers.iterator();

        System.out.print("LinkedHashSet using Iterator: ");

        // Accessing elements
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

Ausgabe

LinkedHashSet: [2, 5, 6]
LinkedHashSet using Iterator: 2, 5, 6,

Hinweis :


Elemente aus HashSet entfernen

Zum Beispiel

import java.util.LinkedHashSet;

class Main {
    public static void main(String[] args) {
        LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("LinkedHashSet: " + numbers);

        // Using the remove() method
        boolean value1 = numbers.remove(5);
        System.out.println("Is 5 removed? " + value1);

        boolean value2 = numbers.removeAll(numbers);
        System.out.println("Are all elements removed? " + value2);
    }
}

Ausgabe

LinkedHashSet: [2, 5, 6]
Is 5 removed? true
Are all elements removed? true

Set-Operationen

Die verschiedenen Methoden des LinkedHashSet Klasse kann auch verwendet werden, um verschiedene Set-Operationen auszuführen.


Vereinigung von Mengen

Zwei führen die Vereinigung zwischen zwei Mengen durch, wir können den addAll() verwenden Methode. Zum Beispiel

import java.util.LinkedHashSet;

class Main {
    public static void main(String[] args) {
        LinkedHashSet<Integer> evenNumbers = new LinkedHashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);
        System.out.println("LinkedHashSet1: " + evenNumbers);

        LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
        numbers.add(1);
        numbers.add(3);
        System.out.println("LinkedHashSet2: " + numbers);

        // Union of two set
        numbers.addAll(evenNumbers);
        System.out.println("Union is: " + numbers);
    }
}

Ausgabe

LinkedHashSet1: [2, 4]
LinkedHashSet2: [1, 3]
Union is: [1, 3, 2, 4]

Schnittmenge von Mengen

Um die Schnittmenge zwischen zwei Sätzen auszuführen, können wir den retainAll() verwenden Methode. Zum Beispiel

import java.util.LinkedHashSet;

class Main {
    public static void main(String[] args) {
        LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        System.out.println("LinkedHashSet1: " + primeNumbers);

        LinkedHashSet<Integer> evenNumbers = new LinkedHashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);
        System.out.println("LinkedHashSet2: " + evenNumbers);

        // Intersection of two sets
        evenNumbers.retainAll(primeNumbers);
        System.out.println("Intersection is: " + evenNumbers);
    }
}

Ausgabe

LinkedHashSet1: [2, 3]
LinkedHashSet2: [2, 4]
Intersection is: [2]

Unterschied von Sätzen

Um die Differenz zwischen den beiden Sätzen zu berechnen, können wir den removeAll() verwenden Methode. Zum Beispiel

import java.util.LinkedHashSet;

class Main {
    public static void main(String[] args) {
        LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        primeNumbers.add(5);
        System.out.println("LinkedHashSet1: " + primeNumbers);

        LinkedHashSet<Integer> oddNumbers = new LinkedHashSet<>();
        oddNumbers.add(1);
        oddNumbers.add(3);
        oddNumbers.add(5);
        System.out.println("LinkedHashSet2: " + oddNumbers);

        // Difference between LinkedHashSet1 and LinkedHashSet2
        primeNumbers.removeAll(oddNumbers);
        System.out.println("Difference : " + primeNumbers);
    }
}

Ausgabe

LinkedHashSet1: [2, 3, 5]
LinkedHashSet2: [1, 3, 5]
Difference: [2]

Teilmenge

Um zu überprüfen, ob eine Menge eine Teilmenge einer anderen Menge ist oder nicht, können wir den containsAll() verwenden Methode. Zum Beispiel

import java.util.LinkedHashSet;

class Main {
    public static void main(String[] args) {
        LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        System.out.println("LinkedHashSet1: " + numbers);

        LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        System.out.println("LinkedHashSet2: " + primeNumbers);

        // Check if primeNumbers is a subset of numbers
        boolean result = numbers.containsAll(primeNumbers);
        System.out.println("Is LinkedHashSet2 is subset of LinkedHashSet1? " + result);
    }
}

Ausgabe

LinkedHashSet1: [1, 2, 3, 4]
LinkedHashSet2: [2, 3]
Is LinkedHashSet2 is a subset of LinkedHashSet1? true

Andere Methoden von LinkedHashSet

zurück
Methode Beschreibung
clone() Erzeugt eine Kopie von LinkedHashSet
contains() Sucht den LinkedHashSet für das angegebene Element und gibt ein boolesches Ergebnis
isEmpty() Überprüft, ob der LinkedHashSet ist leer
size() Gibt die Größe des LinkedHashSet zurück
clear() Entfernt alle Elemente aus LinkedHashSet

Um mehr über LinkedHashSet zu erfahren Methoden finden Sie unter Java LinkedHashSet (offizielle Java-Dokumentation).


LinkedHashSet vs. HashSet

Beide LinkedHashSet und HashSet implementiert den Set Schnittstelle. Es gibt jedoch einige Unterschiede zwischen ihnen.



LinkedHashSet Vs. TreeSet

Hier sind die Hauptunterschiede zwischen LinkedHashSet und TreeSet :


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