Junior — Middle
É possível excluir acidentalmente ou perder o acesso a um registro específico na estrutura de dados Map?
sobes.tech IA
Resposta da IA
Sim, na estrutura de dados Map (por exemplo, HashMap em Java ou MutableMap em Kotlin) é possível apagar acidentalmente ou perder o acesso a uma entrada específica se:
- Você chamar explicitamente o método de remoção, por exemplo,
remove(key). - A chave associada à entrada for modificada (se a chave for um objeto mutável), o que impedirá encontrar a entrada.
- Ocorra uma colisão ou erro na função hash, tornando a entrada inacessível.
Exemplo de situação com perda de acesso:
Map<List<Integer>, String> map = new HashMap<>();
List<Integer> key = new ArrayList<>(Arrays.asList(1, 2, 3));
map.put(key, "value");
// Modificando a chave após adicioná-la ao Map
key.add(4);
// Agora, map.get(key) pode retornar null, pois o código hash da chave mudou
System.out.println(map.get(key)); // null
Portanto, recomenda-se usar objetos imutáveis como chaves em Map (por exemplo, strings, números ou estruturas imutáveis) para evitar a perda de acesso às entradas.