title: In Java, should the hashCode of an object ever change?
body: <p>It seems that many classes (e.g. <code>HashSet</code>) assume that the <code>hashCode</code> of an object will not change. The <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode()" rel="noreferrer">documentation</a> is clear about what the relationship between <code>equals</code> and <code>hashCode</code> should be. </p>
  
  <p>But is it poor design to implement a <code>hashCode</code> that changes across an object's life-time? </p>