I am not understanding that why Equals method needs to be overridden for use in Hashcode ?

Who asked you about that?

reimplementing it through hascode is like,

Get the hashcode for the String1 to be compared (an int)
Get the hashcode for the String2 (will be compared) (an int)...

equate them, if they are equal, then return true, otherwise false.

The advantage is that, whenever they came from different instances, they could still be compared.

Try to browse the code for equals method(under the class that will be overriden) and see how it is implemented....
you can find it in (im not sure) it's a zip file named src that can be found in jdk folder.