整数等于方法
回答
具有相同散列码的两个对象不需要是equals()
。
两个对象equals()
必须具有相同的哈希码。
这基本上意味着你可能有(偶尔)散列码冲突。
的Integer
equals()
方法简单地比较int
值它与其他Integer
的int
值换行。哈希代码不会进入它。
注意,equals()
和hashcode
aggrement没有严格要求,但通过使用内部Hashtable
,例如各种java.util.Hashxxx
类的许多JDK类依靠。
@Boemian但如果metod等于认为两个对象相等,哈希码必须是两个对象相同的值 –
@MarcRasmussen这正是我所说的。我已经重新措辞我的答案,使其更清晰 – Bohemian
Integer equals()方法将int值与==
运算符进行比较,请参见下面的Integer.equals()
方法的代码。
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
为什么对你很重要?
Integer#equals
检查两个int值是否相等,而不仅仅是引用。所以实际的Integer
对象可能会有所不同(不同的参考),但是相同。
如果您检查Integer.java包装类的来源,您可以发现重写了equals方法来检查两个Integer对象是否具有相同的int值。
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
所以你可以说JDK比较了对象内部的整数值。
- 1. 等于整数
- 2. 将等于一个整数总是等于一个整数吗?
- 3. LinkedHashSet等于方法
- 4. JQuery - 方法等于c#All() - 方法
- 5. 对象的等于方法
- 6. 等于方法的问题
- 7. 覆盖等于方法
- 8. JAXB实现“等于”方法
- 9. 不支持“等于”方法
- 10. 删除方法等于1
- 11. C#中的等于方法#
- 12. 等于方法的Junit
- 13. PropertyChangeSupport并等于方法
- 14. openssl等效于AES256EncryptWithKey方法
- 15. 设置字符数组等于整数
- 16. Python,如果整数等于数字
- 17. 解决方法最终==和=(等于不等于)Scala中的DSL方法
- 18. 如果一个整数等于数组中的整数之一?
- 19. 如何整数转换成等于整数元素的数组
- 20. 如何用5除等于除整数
- 21. 整数等于0而不是1
- 22. 检查布尔是否等于整数
- 23. 生成随机整数,等于100
- 24. 整数不等于它的值
- 25. 两个整数是否等于PHP/CodeIgniter?
- 26. Java等于关于数组中的null的方法
- 27. 整数常量不等于常规整数?
- 28. 有没有一种方法,以等待在原子整数
- 29. 替代方法来比较三个整数是否相等
- 30. 查找不等分整数的有效方法
OpenJDK比较整数值:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Integer.java – irrelephant
为什么它很重要您? –
@AleksanderGralak我是个书呆子! –