Java - a classe HashSet
HashSet estende AbstractSet e implementa a interface Set. Ele cria uma coleção que usa uma tabela hash para armazenamento.
Uma tabela hash armazena informações usando um mecanismo chamado hashing. No hashing, o conteúdo informativo de uma chave é usado para determinar um valor único, chamado de código hash.
O código hash é então usado como o índice no qual os dados associados à chave são armazenados. A transformação da chave em seu código hash é realizada automaticamente.
A seguir está a lista de construtores fornecida pela classe HashSet.
Sr. Não. | Construtor e descrição |
---|---|
1 | HashSet( ) Este construtor constrói um HashSet padrão. |
2 | HashSet(Collection c) Este construtor inicializa o conjunto de hash usando os elementos da coleção c. |
3 | HashSet(int capacity) Este construtor inicializa a capacidade do conjunto hash para a capacidade de valor inteiro fornecido. A capacidade aumenta automaticamente conforme os elementos são adicionados ao HashSet. |
4 | HashSet(int capacity, float fillRatio) Este construtor inicializa a capacidade e a taxa de preenchimento (também chamada de capacidade de carga) do conjunto de hash de seus argumentos. Aqui, a proporção de preenchimento deve estar entre 0,0 e 1,0 e determina o quão cheio o conjunto de hash pode ser antes de ser redimensionado para cima. Especificamente, quando o número de elementos é maior que a capacidade do conjunto hash multiplicado por sua proporção de preenchimento, o conjunto hash é expandido. |
Além dos métodos herdados de suas classes pai, HashSet define os seguintes métodos -
Sr. Não. | Método e Descrição |
---|---|
1 | boolean add(Object o) Adiciona o elemento especificado a este conjunto, se ainda não estiver presente. |
2 | void clear() Remove todos os elementos deste conjunto. |
3 | Object clone() Retorna uma cópia superficial desta instância de HashSet: os próprios elementos não são clonados. |
4 | boolean contains(Object o) Retorna verdadeiro se este conjunto contém o elemento especificado. |
5 | boolean isEmpty() Retorna verdadeiro se este conjunto não contiver elementos. |
6 | Iterator iterator() Retorna um iterador sobre os elementos neste conjunto. |
7 | boolean remove(Object o) Remove o elemento especificado deste conjunto, se estiver presente. |
8 | int size() Retorna o número de elementos neste conjunto (sua cardinalidade). |
Exemplo
O programa a seguir ilustra vários dos métodos suportados pelo 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);
}
}
Isso produzirá o seguinte resultado -
Resultado
[A, B, C, D, E, F]