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