O que é Hashmap em Java? Explicado com exemplos
Publicados: 2021-07-02HashMap é uma classe de coleção em Java. Você pode usá-lo para armazenar pares de chave e valor. Seu desempenho depende da capacidade inicial e do fator de carga. HashMap tem vários métodos que permitem que você use sua estrutura de dados de tabela de hash.
No artigo a seguir, exploraremos o que é HashMap e aprenderemos sobre seus vários construtores por meio de exemplos.
Índice
O que é HashMap?
HashMap é uma classe de coleção baseada em Map. Nós o usamos para armazenar pares de chave e valor. Você denota um HashMap Java como HashMap<K, V>, onde K significa Chave e V significa Valor.
HashMap é semelhante à classe Hashtable. A diferença entre os dois é que HashMap não é sincronizado enquanto Hashtable não é. Além disso, ao contrário do Hashtable, o HashMap permite valores nulos e a chave nula.
Como o HashMap não é uma coleção ordenada, ele não retorna as chaves e os valores na ordem em que você os insere. Além disso, HashMap não classifica as chaves e valores armazenados. Se você quiser usar a classe HashMap e seus métodos, você terá que importar java.util.HashMap (ou sua superclasse).
HashMap oferece uma implementação simples da interface Map do Java. Você pode acessar os pares de valores-chave armazenados por meio do HashMap usando um índice de outro tipo (como um número inteiro). Lembre-se de que, se você usar uma chave duplicada, ela substituirá o elemento da chave relevante. Além disso, você só pode usar um objeto de chave nula; no entanto, pode haver qualquer número de valores nulos.
HashMap implementa interfaces Cloneable, Serializable, Map<K, V>. Ele estende a classe AbstractMap<K, V> e suas subclasses diretas são PrinterStateReasons e LinkedHashMap.
Recursos do HashMap
A seguir estão os principais recursos do HashMap:
- É um componente do java.util.package.
- Você pode usar valores duplicados, mas o HashMap não permite chaves duplicadas. Isso significa que uma chave não pode ter vários valores, mas várias chaves podem ter um único valor.
- Você pode usar chaves nulas apenas uma vez, mas pode usar vários valores nulos.
- HashMap não oferece garantias quanto à ordem do mapa. Portanto, não garante se o pedido permanecerá constante.
- O HashMap é muito semelhante ao Hashtable, com a única diferença de que o HashMap não é sincronizado.
- HashMap implementa uma interface Serializable e Cloneable.
Construtores de HashMap
Existem quatro construtores no HashMap:
1. HashMap()
HashMap() é o construtor padrão que cria uma instância com um fator de carga de 0,75 e uma capacidade inicial de 16.
Exemplo :
// Mostrando como o construtor HashMap() funciona
import java.io.*;
import java.util.*;
class AddElementsToHashMap {
public static void main(String args[])
{
// Você não precisa mencionar o
// Tipo genérico duas vezes
HashMap<Integer, String> hm1 = new HashMap<>();
// Usando Generics para inicializar HashMap
HashMap<Integer, String> hm2
= new HashMap<Integer, String>();
// Use o método put para adicionar qualquer elemento
hm1.put(1, “A”);
hm1.put(2, “B”);
hm1.put(3, “C”);
hm2.put(4, “D”);
hm2.put(5, “E”);
hm2.put(6, “F”);
System.out.println(“Os resultados de hm1 são: “
+ hm1);
System.out.println(“Os resultados do HashMap hm2 são: “
+ hm2);
}
}
Saída :
Os resultados de hm1 são: {1=A, 2=B, 3=C}
Os resultados de hm2 são: {4=D, 5=E, 6=F}
2. HashMap(int inicialCapacity)
HashMap(int initialCapacity) criaria uma instância com carga 0,75 e uma capacidade inicial específica.
Exemplo :
// Mostrando como o construtor HashMap(int initialCapacity) funciona
import java.io.*;
import java.util.*;
class AddElementsToHashMap {
public static void main(String args[])
{
// Você não precisa mencionar o
// Tipo genérico duas vezes
HashMap<Integer, String> hm1 = new HashMap<>(10);
// Usando Generics para inicializar HashMap
HashMap<Integer, String> hm2
= new HashMap<Integer, String>(2);
// Use o método put para adicionar qualquer elemento
hm1.put(1, “A”);
hm1.put(2, “B”);
hm1.put(3, “C”);
hm2.put(4, “D”);
hm2.put(5, “E”);
hm2.put(6, “F”);
System.out.println(“Os resultados de hm1 são: “
+ hm1);
System.out.println(“Os resultados do HashMap hm2 são: “
+ hm2);
}
}
Saída :
Os resultados de hm1 são: {1=A, 2=B, 3=C}
Os resultados de hm2 são: {4=D, 5=E, 6=F}
3. HashMap(int initialCapacity, float loadFactor)
HashMap(int initialCapacity, float loadFactor) gera uma instância com um fator de carga específico e capacidade inicial.
Exemplo :
// Mostrando como o Construtor HashMap(int initialCapacity, float loadFactor) funciona
import java.io.*;
import java.util.*;
class AddElementsToHashMap {
public static void main(String args[])
{
// Você não precisa mencionar o
// Tipo genérico duas vezes
HashMap<Integer, String> hm1
= new HashMap<>(5, 0.75f);
// Usando Generics para inicializar o HashMap
HashMap<Integer, String> hm2
= new HashMap<Integer, String>(3, 0.5f);
// Use o método put para adicionar elementos
hm1.put(1, “A”);
hm1.put(2, “B”);
hm1.put(3, “C”);
hm2.put(4, “D”);
hm2.put(5, “E”);
hm2.put(6, “F”);
System.out.println(“Os resultados de hm1 são: “
+ hm1);
System.out.println(“Os resultados do HashMap hm2 são: “
+ hm2);
}
}
Saída :
Os resultados de hm1 são: {1=A, 2=B, 3=C}
Os resultados de hm2 são: {4=D, 5=E, 6=F}
4. HashMap (mapa do mapa)
HashMap(Map map) criaria uma instância com os mesmos mapeamentos que o mapa que você especificar.
Exemplo :
// Mostrando como o construtor HashMap(Map map) funciona
import java.io.*;
import java.util.*;
class AddElementsToHashMap {
public static void main(String args[])
{
// Você não precisa mencionar o
// Tipo genérico duas vezes
Map<Integer, String> hm1 = new HashMap<>();
// Usando Generics para inicializar HashMap
HashMap<Integer, String> hm2
= new HashMap<Integer, String>(hml);
// Use o método put para adicionar qualquer elemento
hm1.put(1, “A”);
hm1.put(2, “B”);
hm1.put(3, “C”);
hm2.put(4, “D”);
hm2.put(5, “E”);
hm2.put(6, “F”);
System.out.println(“Os resultados de hm1 são: “
+ hm1);
System.out.println(“Os resultados do HashMap hm2 são: “
+ hm2);
}
}
Saída :
Os resultados de hm1 são: {1=A, 2=B, 3=C}
Os resultados de hm2 são: {4=D, 5=E, 6=F}
Saiba mais sobre Java
Java tem muitas classes além do HashMap. Aprender sobre o âmago da questão de cada uma dessas classes, seus usos e integração em Java por conta própria é bastante desafiador. A melhor maneira de fazer esse processo é fazer um curso de ciência da computação.
Fazer um curso profissional permitirá que você domine as habilidades e conceitos necessários por meio de um currículo estruturado. Além disso, esses cursos oferecem uma experiência de aprendizado imersiva facilitada por vídeos, sessões ao vivo e palestras on-line que facilitam a compreensão dos fundamentos teóricos.
Você pode conferir nosso programa de Mestrado em Ciência da Computação oferecido em associação com LJMU (Liverpool John Moores University, Reino Unido) e IIIT-B (Instituto Internacional de Tecnologia da Informação, Índia). O curso abrange mais de 500 horas de conteúdo, mais de 10 palestras ao vivo e mais de 30 estudos de caso.
Este curso de 19 meses promete uma experiência de aprendizado global e altamente orientada para o valor. A maior agregação de valor está no fato de você se conectar e se envolver com colegas de todo o mundo. O upGrad se orgulha de ter mais de 40.000 alunos globais pagos espalhados em mais de 85 países. Como resultado, você está exposto a novas culturas, novas opiniões e novas perspectivas que ampliam sua visão geral. Além disso, você é treinado por mentores especializados da LJMU e do IIIT-B que oferecem assistência dedicada e personalizada para ajudar a resolver suas dúvidas.
Juntamente com essas vantagens, este programa fornecerá assistência 360 graus na carreira, que inclui orientação no setor, oportunidades de networking e muito mais.
Conclusão
Neste artigo, aprendemos o que é HashMap, seus diferentes construtores e como você pode implementá-los por meio de exemplos. HashMap tem uma tonelada de aplicativos em Java – você pode usar HashMap para adicionar itens, removê-los e gerenciá-los conforme necessário.
Quais são seus pensamentos sobre este guia sobre HashMap? Compartilhe-os na seção de comentários abaixo.