Java Programming - Objects and Collections - Discussion
Discussion Forum : Objects and Collections - Pointing out the correct statements (Q.No. 6)
6.
x = 0;
if (x1.hashCode() != x2.hashCode() ) x = x + 1;
if (x3.equals(x4) ) x = x + 10;
if (!x5.equals(x6) ) x = x + 100;
if (x7.hashCode() == x8.hashCode() ) x = x + 1000;
System.out.println("x = " + x);
and assuming that the equals() and hashCode() methods are properly implemented, if the output is "x = 1111", which of the following statements will always be true?Answer: Option
Explanation:
By contract, if two objects are equivalent according to the equals() method, then the hashCode() method must evaluate them to be ==.
Option A is incorrect because if the hashCode() values are not equal, the two objects must not be equal.
Option C is incorrect because if equals() is not true there is no guarantee of any result from hashCode().
Option D is incorrect because hashCode() will often return == even if the two objects do not evaluate to equals() being true.
Discussion:
6 comments Page 1 of 1.
Chag vaibhav said:
1 decade ago
I can't able to understand why option b is correct since there is no option like that in question. Please explain. !
Alex said:
1 decade ago
1) I couldn't understand the question.
2) I don't see x1, x2, x3 .... variables declarations.
3) What type does "x" variable have? There must be compilation error at line 1.
2) I don't see x1, x2, x3 .... variables declarations.
3) What type does "x" variable have? There must be compilation error at line 1.
Swati said:
9 years ago
Hello, Can you explain the answer?
TRINITY said:
9 years ago
Please explain more on this concept.
Kamal Vidhani said:
6 years ago
According to me, B is wrong because x3.equals(x4) evaluates values so the objects could still be different.
D is correct because x7 and x8 hashCodes are evaluated as true via ==. Meaning x7 and x8 are referring to the same objects so their values must be the same too.
D is correct because x7 and x8 hashCodes are evaluated as true via ==. Meaning x7 and x8 are referring to the same objects so their values must be the same too.
Sanjay Kumar Gupta said:
6 years ago
Can anyone explain this question in detail?
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers