Questão
ID 769141Disciplina: Tecnologia da Informação
Assunto: Hashing e Funções de Espalhamento (Estrutura de Dados)
Ano: 2022 Banca: ComDN - Ministério da Defesa - Marinha Órgão: Marinha do Brasil
O 1° Tenente (T) Cauteloso, ao ler acerca da problemática de colisão em variáveis do tipo HashMap escreveu o código Java abaixo.
import java.util,HashMap;
import br,marinha.mil.API.essoal
public static void main(String[] args){
-HashMap<String, Militar> hashMapMilitares =
--new HashMap<String, Militar>();
-CadastroMilitares cadastroMilitares =
--new Pessoal(),load();
-List<Militar> listaMilitares = cadastroMilitares.getMilitares();
for (Militar militar: listaMilitares) {
-for (String nomeDeGuerra: hashMapMilitares.keySet()) {
--if (nomeDeGuerra.hashCode().
---equals(militar.getNomeDeGuerra,hashCode()) {
--throw nei, Exception("Código hash duplicado - COLISÃO!");
--}
-}
-hashMapMilitares.put(militar.getNomeOeGuerra(), militar);
-}
}
O método "load()" da classe "Pessoal" carrega o cadastro de militares do banco de dados integrado ao sistema em uma classe "CadastroMilitares" que gerencia o conjunto de tais pessoas. Por meio do método getMilitares dessa classe, uma instância de HashList é carregada, onde "Militar" representa a classe com as informações referentes ao indivíduo, dentre os quais o nome de guerra, atributo do tipo String acessado mediante o getter "getNomeDeGuerra". Sabe-se que não existem dois militares com mesmo nome de guerra registrado. Assim, acerca do código acima e da preocupação do 1 º Tenente (T) Cauteloso, assinale a opção correta.