Remember that you have overriden the equals and the hashcode methods for the class containing the main method. However, you did not really override the hashcode and the equals method for the String class. Just as side note, you cannot override the equals and the hashcode methods for the String class because it is marked final.
In the code you provided, the equals and hashCode method are not invoked as the Set you constructed is composed using String objects. Hence, only the String object's equals, hashCode methods would be invoked.
To illustrate the effect of your local equals and hashCode, you may create instances of the class that holds this code and then replace Strings everywhere in your code with this new class. You may optionally add print statements in equals and hashCode to verify that these methods are indeed invoked.
Thanks & Regards,<br />Chandramouli Ram
I love a woman who dresses in stainless steel ... and carries tiny ads:
how do I do my own kindle-like thing - without amazon