散列碼與對象的引用或地址之間的區別?散列碼與對象的引用或地址之間的區別?
4
A
回答
4
在JavaME中,這三件事情是無關的。
對象的hashCode是它的一個半唯一標識符。
對象的引用是該對象的作用域句柄。
對象的地址(可能)無法獲得,並且肯定無用。
0
對象的引用地址指向對象所在的內存中的位置。
哈希碼通過哈希算法生成,用於標識哈希集合中的對象。不同的算法會產生不同的代碼(糟糕的算法會導致較差的散列碼和集合中更多的衝突)。
0
對象的哈希碼和它在內存中的地址在任何方面都沒有關係。只是對象的不同實現(實際上以不同的語言)使用對象的內存地址作爲識別對象的唯一方式。
通常,方法對hashCode
和equals
提供了用於比較對象的身份的手段。在實現自己的哈希方案時,應該記住哈希值應該由使對象唯一的東西組成。例如,假設您爲數據庫系統提供了一個對象映射器,並且想要引入一個對象 - 您知道在您的表中,客戶對於其主鍵是唯一的,因此將此主鍵作爲散列碼返回將是完美的可接受的,而不是與對象的內存地址有任何關係。
如果客戶使用他的名字,姓氏和出生日期(這不足以識別一個人的唯一身份,但爲簡潔起見保持簡單),那麼你可以將這3個值散列成哈希碼並在你的O/R映射實現中使用它。
相關問題
- 1. 對象和散列之間的區別?
- 2. 「或」與「||」之間的區別?
- 3. 對象引用聲明和對象構造之間的區別?
- 4. NodeJS和Python散列之間的區別
- 5. 加密和散列之間的區別
- 6. 機器代碼與對象代碼之間的區別
- 7. Java對象與用戶定義對象之間的區別
- 8. 通過引用傳遞的int與int的傳遞地址之間的區別
- 9. 來自IIFE的對象與返回對象之間的區別
- 10. 鍵控散列和非鍵控散列之間的區別?
- 11. 空散列和不散列之間的區別
- 12. 可比對象與對象類型之間的區別
- 13. json字典與散列之間的區別
- 14. gdb地址和「真實」地址之間的區別?
- 15. Mac地址和藍牙地址之間的區別
- 16. 內部IP地址和外部IP地址之間的區別
- 17. 相對與絕對之間的區別
- 18. Django的,_base_manager之間的區別對象
- 19. 引用類型和對象類型之間的區別?
- 20. 指針與地址參考之間的區別
- 21. 成對索引和單列索引之間的區別?
- 22. 對象和*之間的區別?
- 23. 對象和字典之間的區別?
- 24. 函數對象之間的區別R
- 25. 對象之間的區別(javascript和jquery)
- 26. 使用Access.Application對象與數據庫連接之間的區別
- 27. R中的散列和列表之間的區別
- 28. 引用JavaScript對象屬性與未引用JavaScript對象屬性之間的區別
- 29. Active Directory用戶類別的電子郵件地址屬性與代理地址屬性之間的區別
- 30. const引用的地址是否可以與引用對象的地址不同?
絕對有用。如果你想在'TreeMap'中存儲一些東西,但是不關心特定的順序呢?如果你能得到對象的引用,並比較你可以爲每個對象使用'TreeMap'。 – 2011-10-04 07:13:15