Communiquez avec les autres et partagez vos connaissances professionnelles

Inscrivez-vous ou connectez-vous pour rejoindre votre communauté professionnelle.

Suivre

Why StringBuffer and StringBuilder has not overridden equals() and hashCode() in java ?

user-image
Question ajoutée par Mohd shahnawaz khan , Associate Project , Cognizant Technology Solution
Date de publication: 2014/12/27
Mohamed Alesh
par Mohamed Alesh , Independent Contractor / Consultant , Upwork (Engineering Team - APIs)

Design wise, I think they shouldn't override equals nor hashcode methods since they are just builder objects. The state for these objects is just the character array from the AbstractStringBuidler. Logically, you wouldn't need to check the equality of two builder objects (someone shouldn't really care about the state of the builder) rather you need to check the equality of what is being built, which is the target String object in this case.

Allahuddin Syed
par Allahuddin Syed , BIG BAZAAR (FUTURE GROUP)

Because String Buffer is mutable, and its primary use is for constructing strings. If you want to compare content, call String Buffer#to String() and compare the returned value.

It is not generally useful to override hash Code() for mutable objects, since modifying such an object that is used as a key in a Hash Map could cause the stored value to be "lost."

Mohammed Mozakir
par Mohammed Mozakir , Software Developer , Traitsys Technology Pvt. Ltd.

Because it is a mutable 

pardeep kumar
par pardeep kumar , Senior R & D Engineer , Mavenir Systems

Simplest reason is that because they are mutable in Java.  Understand the concept of immutability in String, you get to know automatically why these methods are not overridden. 

More Questions Like This

Avez-vous besoin d'aide pour créer un CV ayant les mots-clés recherchés par les employeurs?