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:
- HashSet em Java
- Java HashSet vs HashMap
- Hierarquia HashSet
- Construtores da classe java.util.HashSet
- Métodos da classe java.util.HashSet
- Implementando HashSet no programa Java
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:
- Um HashSet em Java não permite valores duplicados.
- Ele pode conter valores nulos.
- 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.
- Não é sincronizado o que automaticamente o torna inseguro para threads.
- 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 interface | Implementosjava.util.Map |
Armazena dados como objetos | Armazena dados na forma de par de valores-chave |
HashSet requer apenas um parâmetro para sua inicialização de objeto | Requer dois parâmetros (chave, valor) para a inicialização de seu objeto |
Não permite elementos duplicados | Não permite chaves duplicadas, mas você pode armazenar valores duplicados |
Permite um único valor nulo | Permite uma única chave nula e qualquer número de valores nulos |
HashSet usa add ()método para adicionar ou armazenar dados | HashMap 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.
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.