整數等於方法
回答
具有相同散列碼的兩個對象不需要是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我是個書呆子! –