我知道具有相同散列碼的對象不必相同。我的問題是:如果一個哈希集遇到一個對象的哈希碼與已存在於哈希集中的對象的哈希碼相匹配,但是如果這些對象不相等,那麼哈希集是否會將新對象添加到它中?hashset在哪裏存儲一個哈希碼與已經在集合中的哈希碼相匹配的對象?
0
A
回答
2
HashSet
內部使用一個HashMap
與值是常數的關鍵是設置元素。因此,行爲是相同的:如果哈希碼相同但對象不相同,則會發生collsion處理,並將對象放入已解析存儲桶的鏈接列表中。
1
是的,因爲對象實際上是不一樣。
1
是的,它會添加新的對象。它不會被取代,因爲它們不相等。
2
哈希碼不需要是相同的,它只需要映射到同一個桶。 HashSet基於HashMap,所以它的行爲依賴於HashMap。
equals()返回false
的兩個鍵/元素不相同。
Java中的HashMap < = 7使用相同存儲桶的鍵/元素的鏈接列表。 (不是LinkedList等)在Java 8中,它可以使用鍵/元素樹。
相關問題
- 1. 與哈希存儲密碼
- 2. git中存儲樹哈希在哪裏?
- 3. 哈希碼和哈希集的概念
- 4. 哈希密碼不匹配
- 5. 在哈希中存儲哈希
- 6. 如何在哈希中存儲哈希哈希?
- 7. 在對象集合中遞增遞增的哈希代碼
- 8. 在PHP中存儲哈希到密碼
- 9. 如何在兩個不同的哈希中匹配哈希值
- 10. 使用Django的密碼哈斯已經哈希密碼
- 11. 在哈希中匹配值
- 12. 的哈希碼在HashMap中
- 13. SQL bigint哈希匹配c#int64哈希
- 14. Java MD5哈希不匹配.NET哈希
- 15. SAS哈希合併 - 小數據集作爲哈希對象
- 16. 從哪裏開始 - 密碼哈希
- 17. 已存儲的程序中的哈希碼比較不匹配記錄
- 18. Perl中,存儲在哈希
- 19. 製作一個哈希與哈希
- 20. WTForms存儲錯誤的密碼哈希
- 21. 存儲MySQL的密碼哈希
- 22. 將Java哈希碼組合成「主」哈希碼
- 23. 哈希哈希在Perl中
- 24. CakePHP 2.1哈希與集合
- 25. 使哈希鍵與哈希常數的順序匹配
- 26. 解碼哈希
- 27. 哈希密碼
- 28. 哈希碼HashMap
- 29. 哈希/鹽漬時密碼不匹配
- 30. PHP鹽和哈希密碼不匹配
我相信它只是丟棄重複,贊成原來的。但是,你是否簡單地在代碼中嘗試過它? –
對象不重複;他們只有相同的哈希碼。我張貼我的代碼。 – Ankit
我在我的手機上,沒有GrepCode鏈接,但實現是開源的。 – chrylis