if a class overrides equals, it must override hashCode . when they are both overridden, equals and hashCode must use the same set of fields . if two objects are equal, then their hashCode values must be equal as well. if the object is immutable, then hashCode is a candidate for caching and lazy initialization.31 Ara 2021