logo

Java HashSet

Ierarhia claselor Java HashSet

Clasa Java HashSet este folosită pentru a crea o colecție care utilizează un tabel hash pentru stocare. Moștenește clasa AbstractSet și implementează interfața Set.

Punctele importante despre clasa Java HashSet sunt:

  • HashSet stochează elementele folosind un mecanism numit hashing.
  • HashSet conține doar elemente unice.
  • HashSet permite valoarea nulă.
  • Clasa HashSet nu este sincronizată.
  • HashSet nu menține ordinea de inserare. Aici, elementele sunt inserate pe baza codului lor hash.
  • HashSet este cea mai bună abordare pentru operațiunile de căutare.
  • Capacitatea implicită inițială a HashSet este 16, iar factorul de încărcare este 0,75.

Diferența dintre Listă și Set

O listă poate conține elemente duplicate, în timp ce Set conține doar elemente unice.

Ierarhia clasei HashSet

Clasa HashSet extinde clasa AbstractSet care implementează interfața Set. Interfața Set moștenește interfețele Collection și Iterable în ordine ierarhică.


Declarație de clasă HashSet

Să vedem declarația pentru clasa java.util.HashSet.

 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Constructorii clasei Java HashSet

SN Constructor Descriere
1) HashSet() Este folosit pentru a construi un HashSet implicit.
2) HashSet (capacitate int) Este folosit pentru a inițializa capacitatea setului hash la capacitatea de valoare întreagă dată. Capacitatea crește automat pe măsură ce elementele sunt adăugate la HashSet.
3) HashSet (capacitate int, factor de încărcare float) Este folosit pentru a inițializa capacitatea setului hash la capacitatea de valoare întreagă dată și factorul de încărcare specificat.
4) HashSet(Colecția c) Este folosit pentru a inițializa setul hash folosind elementele colecției c.

Metode ale clasei Java HashSet

Diverse metode ale clasei Java HashSet sunt după cum urmează:

SN Modificator și tip Metodă Descriere
1) boolean adaugă (E e) Este folosit pentru a adăuga elementul specificat la acest set dacă nu este deja prezent.
2) gol clar() Este folosit pentru a elimina toate elementele din set.
3) obiect clona() Este folosit pentru a returna o copie superficială a acestei instanțe HashSet: elementele în sine nu sunt clonate.
4) boolean conține (obiectul o) Este folosit pentru a returna true dacă acest set conține elementul specificat.
5) boolean este gol() Este folosit pentru a returna true dacă acest set nu conține elemente.
6) Iterator iterator() Este folosit pentru a returna un iterator peste elementele din acest set.
7) boolean elimina (obiectul o) Este folosit pentru a elimina elementul specificat din acest set dacă este prezent.
8) int mărimea() Este folosit pentru a returna numărul de elemente din set.
9) Spliterator spliterator() Este folosit pentru a crea un Spliterator cu legare tardivă și cu eșec rapid peste elementele din set.

Exemplu Java HashSet

Să vedem un exemplu simplu de HashSet. Observați, elementele repetă într-o colecție neordonată.

 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 

Exemplu Java HashSet ignorând elementele duplicate

În acest exemplu, vedem că HashSet nu permite elemente duplicate.

 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 

Exemplu Java HashSet pentru a elimina elemente

Aici, vedem diferite moduri de a elimina un element.

 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 dintr-o altă colecție

 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 Exemplu: Carte

Să vedem un exemplu HashSet în care adăugăm cărți pentru a seta și tipărim toate cărțile.

 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); } } } 

Ieșire:

 101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6 

Ați putea dori, de asemenea:

Funcționarea HashSet în Java