Java: la classe HashSet
HashSet estende AbstractSet e implementa l'interfaccia Set. Crea una raccolta che utilizza una tabella hash per l'archiviazione.
Una tabella hash memorizza le informazioni utilizzando un meccanismo chiamato hashing. Nell'hashing, il contenuto informativo di una chiave viene utilizzato per determinare un valore univoco, chiamato codice hash.
Il codice hash viene quindi utilizzato come indice in cui vengono archiviati i dati associati alla chiave. La trasformazione della chiave nel suo codice hash viene eseguita automaticamente.
Di seguito è riportato l'elenco dei costruttori forniti dalla classe HashSet.
Sr.No. | Costruttore e descrizione |
---|---|
1 | HashSet( ) Questo costruttore costruisce un HashSet predefinito. |
2 | HashSet(Collection c) Questo costruttore inizializza il set di hash utilizzando gli elementi della raccolta c. |
3 | HashSet(int capacity) Questo costruttore inizializza la capacità del set di hash sulla capacità del valore intero specificato. La capacità cresce automaticamente man mano che gli elementi vengono aggiunti a HashSet. |
4 | HashSet(int capacity, float fillRatio) Questo costruttore inizializza sia la capacità che il rapporto di riempimento (chiamato anche capacità di carico) del set di hash dai suoi argomenti. Qui il rapporto di riempimento deve essere compreso tra 0,0 e 1,0 e determina quanto può essere pieno il set di hash prima che venga ridimensionato verso l'alto. In particolare, quando il numero di elementi è maggiore della capacità del set di hash moltiplicato per il suo rapporto di riempimento, il set di hash viene espanso. |
Oltre ai metodi ereditati dalle sue classi genitore, HashSet definisce i seguenti metodi:
Sr.No. | Metodo e descrizione |
---|---|
1 | boolean add(Object o) Aggiunge l'elemento specificato a questo set se non è già presente. |
2 | void clear() Rimuove tutti gli elementi da questo set. |
3 | Object clone() Restituisce una copia superficiale di questa istanza HashSet: gli elementi stessi non vengono clonati. |
4 | boolean contains(Object o) Restituisce vero se questo set contiene l'elemento specificato. |
5 | boolean isEmpty() Restituisce vero se questo set non contiene elementi. |
6 | Iterator iterator() Restituisce un iteratore sugli elementi in questo set. |
7 | boolean remove(Object o) Rimuove l'elemento specificato da questo set se è presente. |
8 | int size() Restituisce il numero di elementi in questo set (la sua cardinalità). |
Esempio
Il seguente programma illustra molti dei metodi supportati da HashSet -
import java.util.*;
public class HashSetDemo {
public static void main(String args[]) {
// create a hash set
HashSet hs = new HashSet();
// add elements to the hash set
hs.add("B");
hs.add("A");
hs.add("D");
hs.add("E");
hs.add("C");
hs.add("F");
System.out.println(hs);
}
}
Questo produrrà il seguente risultato:
Produzione
[A, B, C, D, E, F]