Mit der Java HashSet-Klasse wird eine Sammlung erstellt, die eine Hash-Tabelle zur Speicherung verwendet. Es erbt die AbstractSet-Klasse und implementiert die Set-Schnittstelle.
Die wichtigen Punkte zur Java HashSet-Klasse sind:
- HashSet speichert die Elemente mithilfe eines Mechanismus namens Hashing.
- HashSet enthält nur eindeutige Elemente.
- HashSet erlaubt Nullwerte.
- Die HashSet-Klasse ist nicht synchronisiert.
- HashSet behält die Einfügereihenfolge nicht bei. Dabei werden Elemente anhand ihres Hashcodes eingefügt.
- HashSet ist der beste Ansatz für Suchvorgänge.
- Die anfängliche Standardkapazität von HashSet beträgt 16 und der Auslastungsfaktor beträgt 0,75.
Unterschied zwischen Liste und Menge
Eine Liste kann doppelte Elemente enthalten, während Set nur eindeutige Elemente enthält.
im String in Java
Hierarchie der HashSet-Klasse
Die HashSet-Klasse erweitert die AbstractSet-Klasse, die die Set-Schnittstelle implementiert. Die Set-Schnittstelle erbt die Schnittstellen Collection und Iterable in hierarchischer Reihenfolge.
Deklaration der HashSet-Klasse
Sehen wir uns die Deklaration für die Klasse java.util.HashSet an.
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Konstruktoren der Java HashSet-Klasse
SN | Konstrukteur | Beschreibung |
---|---|---|
1) | HashSet() | Es wird verwendet, um ein Standard-HashSet zu erstellen. |
2) | HashSet(int Kapazität) | Es wird verwendet, um die Kapazität des Hash-Sets auf die angegebene Ganzzahlwertkapazität zu initialisieren. Die Kapazität wächst automatisch, wenn Elemente zum HashSet hinzugefügt werden. |
3) | HashSet(int Kapazität, Float LoadFactor) | Es wird verwendet, um die Kapazität des Hash-Sets auf die angegebene Ganzzahlwertkapazität und den angegebenen Auslastungsfaktor zu initialisieren. |
4) | HashSet(Sammlung c) | Es wird verwendet, um das Hash-Set mithilfe der Elemente der Sammlung c zu initialisieren. |
Methoden der Java HashSet-Klasse
Verschiedene Methoden der Java HashSet-Klasse sind wie folgt:
SN | Modifikator und Typ | Methode | Beschreibung |
---|---|---|---|
1) | Boolescher Wert | add(E e) | Es wird verwendet, um das angegebene Element zu dieser Menge hinzuzufügen, falls es noch nicht vorhanden ist. |
2) | Leere | klar() | Es wird verwendet, um alle Elemente aus der Menge zu entfernen. |
3) | Objekt | Klon() | Es wird verwendet, um eine flache Kopie dieser HashSet-Instanz zurückzugeben: Die Elemente selbst werden nicht geklont. |
4) | Boolescher Wert | enthält(Objekt o) | Es wird verwendet, um „true“ zurückzugeben, wenn diese Menge das angegebene Element enthält. |
5) | Boolescher Wert | ist leer() | Es wird verwendet, um true zurückzugeben, wenn diese Menge keine Elemente enthält. |
6) | Iterator | Iterator() | Es wird verwendet, um einen Iterator über die Elemente in dieser Menge zurückzugeben. |
7) | Boolescher Wert | entfernen(Objekt o) | Es wird verwendet, um das angegebene Element aus dieser Menge zu entfernen, sofern es vorhanden ist. |
8) | int | Größe() | Es wird verwendet, um die Anzahl der Elemente in der Menge zurückzugeben. |
9) | Spliterator | Splitterator() | Es wird verwendet, um einen spät bindenden und ausfallsicheren Spliterator über die Elemente im Satz zu erstellen. |
Java HashSet-Beispiel
Sehen wir uns ein einfaches Beispiel von HashSet an. Beachten Sie, dass die Elemente in einer ungeordneten Sammlung iterieren.
import java.util.*; class HashSet1{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); set.add('Four'); set.add('Five'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Five One Four Two Three
Java HashSet-Beispiel, bei dem doppelte Elemente ignoriert werden
In diesem Beispiel sehen wir, dass HashSet keine doppelten Elemente zulässt.
import java.util.*; class HashSet2{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Ajay Vijay Ravi
Java HashSet-Beispiel zum Entfernen von Elementen
Hier sehen wir verschiedene Möglichkeiten, ein Element zu entfernen.
import java.util.*; class HashSet3{ public static void main(String args[]){ HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Arun'); set.add('Sumit'); System.out.println('An initial list of elements: '+set); //Removing specific element from HashSet set.remove('Ravi'); System.out.println('After invoking remove(object) method: '+set); HashSet set1=new HashSet(); set1.add('Ajay'); set1.add('Gaurav'); set.addAll(set1); System.out.println('Updated List: '+set); //Removing all the new elements from HashSet set.removeAll(set1); System.out.println('After invoking removeAll() method: '+set); //Removing elements on the basis of specified condition set.removeIf(str->str.contains('Vijay')); System.out.println('After invoking removeIf() method: '+set); //Removing all the elements available in the set set.clear(); System.out.println('After invoking clear() method: '+set); } }
An initial list of elements: [Vijay, Ravi, Arun, Sumit] After invoking remove(object) method: [Vijay, Arun, Sumit] Updated List: [Vijay, Arun, Gaurav, Sumit, Ajay] After invoking removeAll() method: [Vijay, Arun, Sumit] After invoking removeIf() method: [Arun, Sumit] After invoking clear() method: []
Java HashSet aus einer anderen Sammlung
import java.util.*; class HashSet4{ public static void main(String args[]){ ArrayList list=new ArrayList(); list.add('Ravi'); list.add('Vijay'); list.add('Ajay'); HashSet set=new HashSet(list); set.add('Gaurav'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Vijay Ravi Gaurav Ajay
Java HashSet-Beispiel: Buch
Sehen wir uns ein HashSet-Beispiel an, in dem wir Bücher zum Set hinzufügen und alle Bücher drucken.
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashSetExample { public static void main(String[] args) { HashSet set=new HashSet(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to HashSet set.add(b1); set.add(b2); set.add(b3); //Traversing HashSet for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Ausgabe:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
Sie können auch mögen ...
Funktionsweise von HashSet in Java