Entier méthode equals
Normalement, lorsque vous avez un objet un objet est Égale méthodes est égal à un autre objet de même type si les deux hashcodes sont semblables.
N'Entier fonctionnent de la même façon en comparant hashcodes ou faut-il travailler d'une façon différente?
- OpenJDK compare les valeurs de type entier: grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/...
- Pourquoi est-il important pour vous?
- je suis un nerd!
- pourquoi ne pas la porter votre chapeau?
- haha ne peux pas faire ce travail
Vous devez vous connecter pour publier un commentaire.
Deux objets qui ont le même hashcode n'a pas besoin d'être
equals()
.Deux objets qui sont
equals()
doit avoir le même hashcode.Cela signifie fondamentalement que vous pouvez avoir (occasionnel) hashcode collisions.
Le
Integer
equals()
méthode compare simplement leint
valeur qu'il l'enveloppe avec les autresInteger
'sint
valeur. Hashcodes de ne pas venir en elle.Notez que le
equals()
ethashcode
aggrement n'est pas strictement nécessaire, mais il est invoqué par les nombreuses classes du JDK que l'utilisation interneHashtable
, par exemple, les différentsjava.util.Hashxxx
classes.Si vous vérifiez la source de l'Integer.java classe wrapper, vous pouvez trouver que la méthode equals a été remplacé afin de vérifier que l'Entier des objets ont la même valeur int.
De sorte que vous pouvez dire JDK compare les valeurs de nombre entier à l'intérieur de l'objet.
Entier méthode equals() compare les valeurs int comme
==
exploitant n'a, Voir ci-dessous le code deInteger.equals()
méthode.Pourquoi est-il important pour vous?
Integer#equals
vérifie si les deux int valeurs sont égales, et pas seulement les références. Donc laInteger
objets peuvent être différents (différentes références), toutefois, être équivalent.