In Java, every object has an equals and a hashCode method that is used, among ot
ID: 3878077 • Letter: I
Question
In Java, every object has an equals and a hashCode method that is used, among other things, by the standard Collections library. By default both are based on an object’s memory location, but best practice dictates that they should be overridden to be dependent on the object’s state. The rule that should be followed when doing this is: if two objects are equal, then they should have the same hash code value. Which of the following situations would be permissible and which would not under this rule? Provide a brief justification for each.
(a) Two objects have the same hash code and are equal (b) Two objects are equal but have different hash codes
(c) Two objects have the same hash code but are not equal (d) Two objects have different hash codes and are not equal
(please give every explanation for each one, do not just give an option)
Explanation / Answer
(a)PERMISSIBLE
in java if the objects are same then they must have the same value of hash functions as their input elements for hashing are same.
(b)NOT PERMISSIBLE
if two objects are equal then they must have the same hashcode
(c) PERMISSIBLE
It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results
It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results
(d)PERMISSIBLE
it is obvious that different objects are allowed to have a different hash code, it is the basic property of hashcode.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.