title: Why do I need to override the equals and hashCode methods in Java?
body: <p>Recently I read through this
  <a href="http://www.ibm.com/developerworks/java/library/j-jtp05273.html" rel="noreferrer"> Developer Works Document</a>. </p>
  
  <p>The document is all about defining <code>hashCode()</code> and <code>equals()</code> effectively and correctly, however I am not able to figure out why we need to override these two methods. </p>
  
  <p>How can I take the decision to implement these methods efficiently?</p>