Entender a classe HashMap é essencial para desenvolvedores, tanto em aplicações do mundo real quanto em entrevistas. Nesta postagem, exploraremos como inserir, atualizar e gerenciar pares de valores-chave em um HashMap. Esse conhecimento também servirá de base para nosso próximo artigo, onde nos aprofundaremos em HashSet e veremos como as duas coleções se relacionam.
Um HashMap armazena dados como pares de valores-chave, permitindo pesquisas, atualizações e exclusões eficientes. Aqui estão algumas características importantes:
Vamos explorar esses comportamentos com mais detalhes por meio de trechos de código.
O método put() adiciona um par de valores-chave ao mapa. Porém, se a chave já existir, o valor antigo será substituído.
Mapmap = new HashMap(); // Insert two key-value pairs map.put(1, 2); map.put(2, 3);
Explicação:
Aqui, inserimos duas entradas:
Agora, o que acontece se tentarmos inserir um novo valor com a mesma chave?
// Replacing an existing value map.put(2, 4); // Key 2 already exists, so the value is replaced.
A chave 2 já existia com o valor 3, mas quando chamamos put(2, 4), o novo valor 4 substitui o antigo. Este é o comportamento padrão do HashMap.
Em muitas situações, você pode não querer que os valores sejam substituídos se uma chave já existir – isso pode levar à perda de dados se não for tratado com cuidado. Nesses casos, podemos usar o método putIfAbsent().
// Ensuring value isn't replaced if key exists map.putIfAbsent(2, 5);
O método putIfAbsent() apenas insere um valor se a chave especificada ainda não estiver presente no mapa. Como a chave 2 já está associada ao valor 4, a chamada do método aqui não tem efeito.
System.out.println(map); // Output: {1=2, 2=4}
A saída mostra que a chave 2 mantém o valor 4 porque putIfAbsent() não substituiu o valor existente.
A classe HashMap é uma ferramenta poderosa em Java para armazenar pares chave-valor, mas é crucial entender seu comportamento com chaves duplicadas. Saber quando usar put() versus putIfAbsent() pode ajudá-lo a evitar perda de dados e escrever código eficiente. Com complexidade de tempo médio O(1) para operações básicas, o HashMap é a escolha certa para muitas tarefas críticas de desempenho.
Fique ligado no próximo post, onde exploraremos o HashSet e como ele garante exclusividade usando um HashMap internamente!
Fundamentos de Java
Princípios básicos da entrevista de matriz
Fundamentos da memória Java
Boa codificação!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3