Objects and Collections - Programming

Q1:

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?

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

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

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

D class Test2 will not compile.

ANS:A -

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

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.