🚀 Java Interview Questions – Episode 6
💡 What is the contract between equals() and hashCode() in Java?
📍 And where is it used?
In Java, whenever you override equals(), you must also override hashCode() — this is known as the equals-hashCode contract. Here’s the rule:
✅ If two objects are equal according to equals(), then they must have the same hashCode().
❌ The reverse is not necessarily true: two objects with the same hashCode() aren’t always equal.
🔍 Where is it used?
This contract is essential when working with collections like:
🟣 HashSet
🟣 HashMap
🟣 Hashtable
Without following this contract, your objects may behave unexpectedly in hash-based structures — like being "lost" in a HashSet even though they seem equal. ⚠️
💡 Always override both methods together for correct behavior in hash-based collections.