Multiple choice

class Test1 { public int value; public int hashCode() { return 42; } } class Test2 { public int value; public int hashcode() { return (int)(value^5); } } which statement is true?

  1. class Test1 will not compile.

  2. The Test1 hashCode() method is more efficient than the Test2 hashCode() method.

  3. The Test1 hashCode() method is less efficient than the Test2 hashCode()method.

  4. class Test2 will not compile.

Reveal answer Fill a bubble to check yourself
C Correct answer
Explanation

The so-called "hashing algorithm" implemented by class Test1 will always return the same value, 42, which is legal but which will place all of the hash table entries into a single bucket, the most inefficient setup possible. Option A and D are incorrect because these classes are legal. Option B is incorrect based on the logic described above.