logo

Java HashSet

Java HashSet-Klassenhierarchie

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