Though modern IDE like Eclipse, IntelliJ or Netbeans allows you to
generate equals, hashCode and compareTo methods for your value classes, it's
equally important, you know how to do that by hand. By overriding
equals and hashcode method by yourself, you know how they work, what kind
of errors you can get, and most importantly, it's expected form you, as a Java
programmer in any core
Java interview. More often, you would see a coding question in Java, which
ask you to override equals(), hashcode(), compare() and compareTo() methods
for a value class. Since I have already shared some tips on How
to override compareTo method in Java, and couple of example of writing
your own comparator in Java, here I am sharing another simple example of
overriding equals and hashCode methods. If you know rules of overriding equals and hashCode, you might
know that, whenever you override equals, you must have to override hashCode,
otherwise your object will not behave properly on various collection classes
e.g. Map
or Set, which uses equals, compareTo, hashCode to
implement there invariants e.g. Set implementations should not allow any
duplicates.