A classe Java HashSet é usada para criar uma coleção que usa uma tabela hash para armazenamento. Ele herda a classe AbstractSet e implementa a interface Set.
Os pontos importantes sobre a classe Java HashSet são:
- HashSet armazena os elementos usando um mecanismo chamado hash.
- HashSet contém apenas elementos exclusivos.
- HashSet permite valor nulo.
- A classe HashSet não está sincronizada.
- HashSet não mantém o pedido de inserção. Aqui, os elementos são inseridos com base em seu código hash.
- HashSet é a melhor abordagem para operações de pesquisa.
- A capacidade padrão inicial do HashSet é 16 e o fator de carga é 0,75.
Diferença entre lista e conjunto
Uma lista pode conter elementos duplicados, enquanto Set contém apenas elementos únicos.
lista de arrays java classificada
Hierarquia da classe HashSet
A classe HashSet estende a classe AbstractSet que implementa a interface Set. A interface Set herda as interfaces Collection e Iterable em ordem hierárquica.
Declaração de classe HashSet
Vamos ver a declaração da classe java.util.HashSet.
mvc na estrutura de primavera
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Construtores da classe Java HashSet
SN | Construtor | Descrição |
---|---|---|
1) | HashSet() | É usado para construir um HashSet padrão. |
2) | HashSet(capacidade interna) | É usado para inicializar a capacidade do conjunto de hash para a capacidade do valor inteiro fornecido. A capacidade aumenta automaticamente à medida que elementos são adicionados ao HashSet. |
3) | HashSet(int capacidade, float loadFactor) | É usado para inicializar a capacidade do conjunto de hash para a capacidade do valor inteiro fornecido e o fator de carga especificado. |
4) | HashSet (Coleção c) | É usado para inicializar o conjunto hash usando os elementos da coleção c. |
Métodos da classe Java HashSet
Vários métodos da classe Java HashSet são os seguintes:
SN | Modificador e tipo | Método | Descrição |
---|---|---|---|
1) | boleano | adicionar (E e) | É usado para adicionar o elemento especificado a este conjunto, se ainda não estiver presente. |
2) | vazio | claro() | É usado para remover todos os elementos do conjunto. |
3) | objeto | clone() | É usado para retornar uma cópia superficial desta instância de HashSet: os próprios elementos não são clonados. |
4) | boleano | contém (Objeto o) | É usado para retornar verdadeiro se este conjunto contiver o elemento especificado. |
5) | boleano | está vazia() | É usado para retornar verdadeiro se este conjunto não contiver elementos. |
6) | Iterador | iterador() | É usado para retornar um iterador sobre os elementos deste conjunto. |
7) | boleano | remover (Objeto o) | É usado para remover o elemento especificado deste conjunto, se estiver presente. |
8) | interno | tamanho() | É usado para retornar o número de elementos do conjunto. |
9) | Divisor | divisor() | Ele é usado para criar um Spliterator de ligação tardia e rápida sobre os elementos do conjunto. |
Exemplo de HashSet Java
Vamos ver um exemplo simples de HashSet. Observe que os elementos iteram em uma coleção não ordenada.
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
Exemplo Java HashSet ignorando elementos duplicados
Neste exemplo, vemos que HashSet não permite elementos duplicados.
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
Exemplo Java HashSet para remover elementos
Aqui, vemos diferentes maneiras de remover um 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 de outra coleção
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
Exemplo Java HashSet: Livro
Vamos ver um exemplo de HashSet onde adicionamos livros ao conjunto e imprimimos todos os livros.
janela.abrir
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); } } }
Saída:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
Você pode gostar:
Trabalho de HashSet em Java