Je comprends le contrat entre hashcode() et equals(). Ce que je ne comprends pas est que dois-je inclure tous les champs de ma classe (haricot) tout en calculant la même chose? par exemple. J'ai besoin d'utiliser mon objet bean dans une collection basée sur le hachage et nécessite un tri. La classe de bean contient ~ 25 champs.Dois-je tenir compte de tous les champs lors du calcul du hashcode() et de l'équation()?
Est-il nécessaire de prendre en compte tout son champ tout en remplaçant HashCode() et euqals()?
No. Seuls les champs qui sont nécessaires pour la détermination de l ' « identité » (pour le code de hachage) - et quant aux égaux, cela dépend de vous. L'Object # par défaut est égal à seulement l'égalité de référence des tests. –
@Elliot Selon ma compréhension, la meilleure pratique consiste à utiliser les mêmes champs dans hashcode() et equals(). – Diganta
Comprenez-vous la différence entre * absolument nécessaire * et * meilleure pratique *? Que demandez-vous ici? –