Java Programming - Objects and Collections - Discussion
Discussion Forum : Objects and Collections - Pointing out the correct statements (Q.No. 1)
1.
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?Answer: Option
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.
Discussion:
14 comments Page 1 of 2.
Kalai said:
1 decade ago
In this class "value" is not initialized then how the operation (value^5) can be performed.
class Test2
{
public int value;
public int hashcode() { return (int)(value^5); }
}
class Test2
{
public int value;
public int hashcode() { return (int)(value^5); }
}
Nafeez Abrar said:
1 decade ago
It is not mentioned here that, the function hashcode() is return actually a hash value for a hash table or other purpose.
Jimbo said:
1 decade ago
This question is not ideal.
In terms of efficiency, Test1's hashCode () method is marginally more efficient since no arithmetic is performed.
For the purpose of a hash table, they are both useless methods since each always returns the same value - 42 and 0 respectively (we never know if Test2's "value" member will ever be changed, thus we can only assume it always has the default value of 0).
In terms of efficiency, Test1's hashCode () method is marginally more efficient since no arithmetic is performed.
For the purpose of a hash table, they are both useless methods since each always returns the same value - 42 and 0 respectively (we never know if Test2's "value" member will ever be changed, thus we can only assume it always has the default value of 0).
Nickc-88 said:
1 decade ago
Since variable value initialised with default value=0 class Test1 hashCode will be more efficient, because it only returns 42, but in Test2 it always performs arithmetic operation (0^5) and then returns value.
Vikesh said:
1 decade ago
@Nickc-88, totally agreed. hasCode() for Test1 is more efficient since no computation is required. The value returned by both are obviously useless since they both return "a constant" value in all cases - only difference is one returns 42 without computing it, other returns 5 after some arithmetic operation.
Alex said:
1 decade ago
The answer choices don't state that the hashCode/hashcode functions are more efficient hashing algorithms. Within the context of the code given, B should be the correct answer. Strictly speaking though, none of the answers are correct, because Test2 does not have a "hashCode" method.
Peter said:
10 years ago
Here is my suggestion to fix this contextual problem, open for further improvement.
In order to make it clear that the test is about knowing the purpose of the hashCode() method, answers B and C could be changed to:
[B]. The Test1 hashCode() method is a more efficient hashing method than the Test2 hashCode() method.
[C]. The Test1 hashCode() method is a less efficient hashing method than the Test2 hashCode() method.
What do you think?
In order to make it clear that the test is about knowing the purpose of the hashCode() method, answers B and C could be changed to:
[B]. The Test1 hashCode() method is a more efficient hashing method than the Test2 hashCode() method.
[C]. The Test1 hashCode() method is a less efficient hashing method than the Test2 hashCode() method.
What do you think?
Rupesh said:
9 years ago
There is no any public call for java file only one public class is needed.
Karam said:
9 years ago
The int value is not initialized, so compilation fails.
Salim said:
9 years ago
@Karam
The instance variables are initialized to default, here 0(zero).
The instance variables are initialized to default, here 0(zero).
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers