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.
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"));
}
}
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).