La classe Java HashSet viene utilizzata per creare una raccolta che utilizza una tabella hash per l'archiviazione. Eredita la classe AbstractSet e implementa l'interfaccia Set.
I punti importanti sulla classe Java HashSet sono:
- HashSet memorizza gli elementi utilizzando un meccanismo chiamato hashing.
- HashSet contiene solo elementi univoci.
- HashSet consente un valore nullo.
- La classe HashSet non è sincronizzata.
- HashSet non mantiene l'ordine di inserimento. Qui gli elementi vengono inseriti in base al loro hashcode.
- HashSet è l'approccio migliore per le operazioni di ricerca.
- La capacità predefinita iniziale di HashSet è 16 e il fattore di carico è 0,75.
Differenza tra elenco e set
Un elenco può contenere elementi duplicati mentre Set contiene solo elementi univoci.
Gerarchia della classe HashSet
La classe HashSet estende la classe AbstractSet che implementa l'interfaccia Set. L'interfaccia Set eredita le interfacce Collection e Iterable in ordine gerarchico.
Dichiarazione della classe HashSet
Vediamo la dichiarazione per la classe java.util.HashSet.
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Costruttori della classe Java HashSet
SN | Costruttore | Descrizione |
---|---|---|
1) | SetHash() | Viene utilizzato per costruire un HashSet predefinito. |
2) | HashSet(capacità int) | Viene utilizzato per inizializzare la capacità dell'hash impostata sulla capacità del valore intero specificato. La capacità aumenta automaticamente man mano che gli elementi vengono aggiunti all'HashSet. |
3) | HashSet(capacità int, fattore di carico float) | Viene utilizzato per inizializzare la capacità dell'hash impostata sulla capacità del valore intero specificato e sul fattore di carico specificato. |
4) | HashSet(Raccolta c) | Viene utilizzato per inizializzare l'hash set utilizzando gli elementi della collection c. |
Metodi della classe Java HashSet
Vari metodi della classe Java HashSet sono i seguenti:
SN | Modificatore e tipo | Metodo | Descrizione |
---|---|---|---|
1) | booleano | aggiungi(E e) | Viene utilizzato per aggiungere l'elemento specificato a questo insieme se non è già presente. |
2) | vuoto | chiaro() | Viene utilizzato per rimuovere tutti gli elementi dal set. |
3) | oggetto | clone() | Viene utilizzato per restituire una copia superficiale di questa istanza HashSet: gli elementi stessi non vengono clonati. |
4) | booleano | contiene(Oggetto o) | Viene utilizzato per restituire true se questo set contiene l'elemento specificato. |
5) | booleano | è vuoto() | Viene utilizzato per restituire true se questo insieme non contiene elementi. |
6) | Iteratore | iteratore() | Viene utilizzato per restituire un iteratore sugli elementi di questo set. |
7) | booleano | rimuovi(Oggetto o) | Viene utilizzato per rimuovere l'elemento specificato da questo insieme, se presente. |
8) | int | misurare() | Viene utilizzato per restituire il numero di elementi nell'insieme. |
9) | Spliteratore | divisore() | Viene utilizzato per creare uno Spliterator con associazione tardiva e fail-fast sugli elementi del set. |
Esempio di set di hash Java
Vediamo un semplice esempio di HashSet. Si noti che gli elementi vengono ripetuti in una raccolta non ordinata.
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
Esempio Java HashSet che ignora gli elementi duplicati
In questo esempio, vediamo che HashSet non consente elementi duplicati.
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
Esempio Java HashSet per rimuovere elementi
Qui vediamo diversi modi per rimuovere un elemento.
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 da un'altra raccolta
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
Esempio di Java HashSet: libro
Vediamo un esempio di HashSet in cui aggiungiamo libri al set e stampiamo tutti i libri.
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); } } }
Produzione:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
Potrebbe piacerti anche:
Funzionamento di HashSet in Java