Java · Essencial · Inglês · Técnico
HashMap
Mapa que associa chaves a valores usando uma tabela de dispersão. Busca e inserção custam, em média, tempo constante, e a ordem de iteração não é garantida.
Onde usar
Surge em code review sobre chaves: 'essa classe usada como chave não sobrescreve hashCode'. Também em bugs de iteração com ordem inesperada.
Em código
var estoque = new HashMap<String, Integer>();
estoque.put("caneta", 10);
estoque.merge("caneta", 5, Integer::sum);
int n = estoque.get("caneta"); // 15
int m = estoque.getOrDefault("lapis", 0);Exemplos
Use a HashMap for the lookup by id.
Use um HashMap para a busca por id.
A HashMap shared between threads is a bug waiting to happen.
Um HashMap compartilhado entre threads é um bug esperando para acontecer.
Cuidado
Não é thread-safe: usar em várias threads pode corromper dados; para isso existe o ConcurrentHashMap.
Sinônimos
mapa de dispersão