Aprenda o que é HashSet em Java e como começar a usá-lo!



Este artigo sobre HashSet em Java lhe dará uma visão geral completa do que exatamente é HashSet em Java e como implementá-lo. Também falará sobre os vários métodos e construtores suportados pela classe Java HashSet.

HashSet em Java é um dos aspectos mais importantes de . Normalmente é usado para armazenar valores exclusivos de uma maneira não ordenada. Por meio deste artigo sobre HashSet em Java, apresentarei um passo a passo completo do que exatamente é um HashSet e como você pode usá-lo em seu aplicativo.

Abaixo estão os tópicos abordados neste artigo:





Vamos começar entendendo primeiro o que são HashSet em Java.

HashSet em Java



java.util.HashSet classe é um membro da estrutura de coleções Java queherda a classe AbstractSet eimplementa oConjunto interface . Ele implementa implicitamente uma tabela de hash para criar e armazenar uma coleção de elementos exclusivos. Hashtable nada mais é que uma instância da classe HashMap que usa um mecanismo de hashing para armazenar as informações em um HashSet.

Hashing é o processo de conversão do conteúdo informativo em um valor exclusivo, mais conhecido como código hash. Esse código hash é então usado para indexar os dados associados à chave. Todo o processo de transformação da chave informativa em hashcode é realizado internamente.

Agora, para uma melhor compreensão do HashSet em Java, deixe-me listar alguns de seus recursos:



  1. Um HashSet em Java não permite valores duplicados.
  2. Ele pode conter valores nulos.
  3. O HashSet não segue a ordem de inserção para armazenar os dados, em vez disso, ele usa o código hash para indexar os valores contidos.
  4. Não é sincronizado o que automaticamente o torna inseguro para threads.
  5. A classe HashSet também implementa Cloneable eInterfaces serializáveis.

Agora que você está ciente do que exatamente é HashSet em Java, vamos prosseguir com este artigo e desmistificar as diferenças entre HashMap e HashSet em Java.

Java HashSet vs HashMap

HashSet HashMap
Implementosjava.util.Definir interfaceImplementosjava.util.Map
Armazena dados como objetosArmazena dados na forma de par de valores-chave
HashSet requer apenas um parâmetro para sua inicialização de objetoRequer dois parâmetros (chave, valor) para a inicialização de seu objeto
Não permite elementos duplicadosNão permite chaves duplicadas, mas você pode armazenar valores duplicados
Permite um único valor nuloPermite uma única chave nula e qualquer número de valores nulos
HashSet usa add ()método para adicionar ou armazenar dadosHashMap usa o método put () para armazenar dados

Agora que você tem uma distinção clara entre HashMap e HashSet, vamos nos concentrar no HashSet novamente e nos aprofundar nele. Na próxima seção deste artigo, apresentarei a hierarquia completa do HashSet em Java.

valor padrão de char em java

Hierarquia HashSet em Java

Como você pode ver no diagrama fornecido abaixo,A classe HashSet implementa a interface Set. A interface Set herda ainda mais a interface Collection, que eventualmente estende a interface Iterable em uma ordem hierárquica.

Hierarquia Java HashSet - HashSet em Java - Edureka

Agora, avançando com este artigo HashSet em Java, vamos verificar os vários construtores apoiado por esta classe.

Construtores da classe java.util.HashSet

Construtor Descrição
HashSet () Este é o construtor padrão da classe HashSet
HashSet (capacidade interna) Este construtor é usado para inicializar a capacidade inicial do conjunto hash. A capacidade pode crescer dinamicamente com a adição de novos elementos
HashSet (capacidade interna, capacidade de carga flutuante) Este construtor é usado para inicializar a capacidade inicial do conjunto de hash junto com a capacidade de carga
HashSet (coleção c) Este construtor é usado para inicializaro conjunto de hash usando os elementos da coleção c

Estes foram os quatro construtores da classe HashSet em . Vamos agora descobrir quais são as várias definido em Java HashSet.

Métodos da classe java.util.HashSet

Método Descrição
boolean add (Object obj) Este método ajuda a adicionar um elemento especificado ao HashSet apenas se ele não estiver presente
void clear () Este método ajuda a remover todos os elementos do HashSet
Clone de objeto () Este método retorna uma cópia superficial da instância HashSet em vez de clones dos elementos HashSet
boolean contém (objeto o) Este método retorna verdadeiro se o elemento passado estiver presente no HashSet
boolean isEmpty () Este método retorna verdadeiro caso o HashSet esteja vazio
Iterator iterator () Este método retorna um iterador sobre os elementos presentes no HashSet
boolean remove (objeto o) Este método ajuda a remover o elemento especificado do HashSet se ele estiver presente
tamanho interno () Este método retorna o número total de elementos presentes no HashSet

Junto com os métodos listados acima, a classe HashSet em Java também contém o de suas superclasses.

Agora vamos tentar implementar esses métodos e começar a trabalhar com a codificação.

Implementando HashSet no programa Java

No exemplo a seguir, tentaremos implementar vários métodos fornecidos pela classe HashSet.

import java.util.HashSet import java.util. * public class SampleHashSet {public static void main (String [] args) {// Criando um conjunto HashSet eduCourses = new HashSet () // Adicionando novos elementos ao HashSet eduCourses.add ('Big Data') eduCourses.add ('Node.js') eduCourses.add ('Java') eduCourses.add ('Python') eduCourses.add ('Blockchain') eduCourses.add ('JavaScript') eduCourses. add ('Selenium') eduCourses.add ('AWS') eduCourses.add ('Aprendizado de máquina') eduCourses.add ('RPA') // Adicionar elementos duplicados será ignorado eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Verifique se o HashSet contém um elemento específico String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' está na lista de cursos. ')} else {System.out.println (myCourse +' não está na lista de cursos. ')} // Classificando eduCourses usando List List list = new ArrayList (eduCourses) Collections.sort (list) // Imprimindo os elementos classificados do HashSet System.out.println (' Imprimindo os Cursos em ordem classificada usando List: '+ list) // Removendo itens do HashSet usando remove () eduCourses.remove (' Python ') // Iterando sobre itens HashSet System.out.println (' Iterando na lista de cursos após remover Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // Criação de outro objeto de HashSet HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Aprendizado de máquina') // Removendo todos os novos elementos de HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Após invocar removeAll () método cursos restantes: '+ eduCourses) // Removendo elementos com base na condição especificada eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Após invocar o método removeIf (): '+ eduCourses) // Remoção de elementos de eduCourses que são especificados na operação eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet após' + 'reterAll (): '+ eduNewCourses) // Removendo todos os elementos disponíveis no conjunto eduCourses.clear () System.out.println (' Depois de invocar o método clear (): '+ eduCourses)}}

Ao executar o código acima, ele fornecerá a saída mostrada abaixo.

Quais das opções a seguir são exemplos de declarações de controle?

Com isso, chegamos ao final deste artigo. Espero ter conseguido manter os conceitos nítidos e claros. Você pode aprender mais sobre passando por nosso .

Agora que você entendeu o que é um HashSet em Java, verifique o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso de certificação e treinamento Java J2EE e SOA da Edureka é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi elaborado para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste artigo “HashSet em Java” e entraremos em contato com você o mais breve possível.