HashMap | Utilizando dicionário de dados em java | Morettic

HashMap | Utilizando dicionário de dados em java

porLuis Augusto Moretto

HashMap | Utilizando dicionário de dados em java

Programação orientada a objetos

HashMap: Manipulando chaves e valor

O HashMap  assim como o ArrayList, faz parte da coleção em Java desde o 1.2. Ele fornece a implementação básica da interface Map do Java. 

Ele armazena os dados em pares (chave, valor). Para acessar um valor, você deve conhecer sua chave, caso contrário, você não poderá acessá-lo. 

HashMap é conhecido como HashMap porque usa uma técnica Hashing. 

Hashing é uma técnica de conversão de uma grande String em uma pequena String que representa a mesma String. 

Um valor menor ajuda na indexação e em pesquisas mais rápidas. O HashSet também usa o HashMap internamente. 

Usa internamente lista de links para armazenar pares de valores-chave. 

hashmap dicionário de dados em java. java.util.HashMap
Implementa a interface MAP

Exemplo de uso do HashMap

import java.util.*;
public class HashMapDemo {

   public static void main(String args[]) {
   
      // Criação do Hashmap
      HashMap hm = new HashMap();
      
      // Put elements to the map
      hm.put("Zara", new Double(3434.34));
      hm.put("Mahnaz", new Double(123.22));
      hm.put("Ayan", new Double(1378.00));
      hm.put("Daisy", new Double(99.22));
      hm.put("Qadir", new Double(-19.08));
      
      // Pega o conjunto de entradas
      Set set = hm.entrySet();
      
      // Recupera o iterator
      Iterator i = set.iterator();
      
      // Mostra os elementos
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      
      // Deposita 1000 na conta de Zara
      double balance = ((Double)hm.get("Zara")).doubleValue();
      hm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " + hm.get("Zara"));
   }
}

Porque Sobrescrever o método hashCode()?

A Interface java.util.Map armazena seus elementos em intervalos de memória.

Cada “gaveta de memória” está vinculado a um código hash específico. Ao adicionar um objeto no Map, o Java armazena o  mesmo dentro de um bucket e o vincula ao valor de objeto.hashcode ().

Agora, a qualquer momento que um elemento com o mesmo código hash é inserido no conjunto, ele apenas substituirá o objeto.

No entanto, como o cada objeto tem tem um código hash diferente, ele será armazenado em um bloco separado e será considerado um objeto totalmente diferente.

Aí vem a importância de substituir hashcode () , então vamos sobrescrevê-lo em  e configurá-lo para ser igual ao valor identificador do objeto (único).