Magna Concursos

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.Pessoal

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 new Exception("Código hash duplicado - COLISÃO!");

}

}
hashMapMilitares.put(militar.getNomeDeGuerra(), 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.

 

Provas

Questão presente nas seguintes provas