By same result I mean, if two elements are equal(), am I obliged to make them have same hashCode() as well? What can go wrong if I don't do that?
First thing that came up to my mind is that 2 elements could be 'equal' in ArrayList, but not in HashSet. Is it bad practice to allow such behavior? And what problems could it make other than using contains() in them?