logo

Java HashSet

Gerarchia di classi Java HashSet

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