O que é Hashmap em Java? Explicado com exemplos

Publicados: 2021-07-02

HashMap é 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.

Aprimore-se e prepare-se para o futuro

Inscreva-se agora para o curso de engenharia de software do formulário LJMU