Erro no TestKiller?[RESOLVIDO]

4 respostas
M

Estava estudando e me deparei com a seguinte questao

Given:

11. public class Person {

12. private name;

13. public Person(String name) {

14. this.name = name;

15. }

16. public int hashCode() {

17. return 420;

18. }

19. }

Which is true?

A. The time to find the value from HashMap with a Person key depends

on the size of the map.

B. Deleting a Person key from a HashMap will delete all map entries for

all keys of type Person.

C. Inserting a second Person object into a HashSet will cause the first

Person object to be removed as a duplicate.

D. The time to determine whether a Person object is contained in a

HashSet is constant and does NOT depend on the size of the map.

Answer: A

Teria como alguem me explicar pq a resposta daria A?
pq alem de faltar especificar o tipo da variavel “name”(o que geraria erro de compilação)
a resposta nao dependeria do tamanho do nome pois eu to retornando 420 de qualquer forma.

Att,Marcos.


4 Respostas

Gustavo_Santos

Me corrijam se eu estiver errado, mais acho que é pelo fato de que todas
as chaves estarão no mesmo “baude hashing”, dessa forma quando alguém passar
uma referência para o conjunto hash, esse vai procurar no mesmo "baude hashing"
para todos os objetos desse tipo, e depois comparar com equals(Object) para ver se
existe. Se esse “baude hashing” for muito grande, deve demorar mais.

Interpretei assim…

Epero ter ajudado.

Roger75

O tipo do atributo não é algo relevante para a questão, pois nenhuma das alternativas afirma que a classe não vai compilar. O teste que você tem fazer é o seguinte: crie dois Hashmaps e armazene poucos objetos Person em um e vários no segundo. Depois, faça uma busca nos dois Hashmaps e meça o tempo. Provavelmente o que tiver mais dados vai demorar mais tempo de busca. É disso que a questão trata.

M

Valeu galera.

pmlm

Um HashMap deve ser rápido a devolver os dados. Neste caso, como o hashCode é sempre 420 vais ter uma Lista “disfarçada” de HashMap, mas unicamente uma Lista onde o tempo de pesquisa será dependente do tamanho da mesma.

Criado 10 de setembro de 2010
Ultima resposta 10 de set. de 2010
Respostas 4
Participantes 4