哈希映射究竟是如何在內部存儲數據......我知道它會計算密鑰的HashCode值並將其存儲。如果兩個密鑰具有相同的哈希代碼,它將放入相同鬥。但是爲什麼,如果「兩個鍵是在寫入相同的HashMap」現有一個?兩個鍵是相同的哈希映射在寫「現有的?
1
A
回答
1
哈希碼的主要目的是減少基於哈希的集合中equals方法的調用次數。對於equals方法,相同的哈希碼不需要返回true。但是如果你說它的平等是真的,那麼它的代碼應該是真的。
3
見http://en.wikipedia.org/wiki/Hash_table和http://www.docjar.com/html/api/java/util/HashMap.java.html
哈希表或哈希地圖是鏈表的陣列,通過哈希碼鍵控。
9
好吧,這就是它設計的目的,它是鍵/值對的映射,其中任何鍵都與0或1值相關聯。鍵的第二個值,該鍵的條目將被替換。
雖然它不是基於散列碼,它也會測試關鍵是否相等。兩個鍵可以不相等,但具有相同的散列碼。重要的是兩個相同的密鑰必須具有相同的哈希碼。
如果你想存儲一個鍵的多個值,你應該使用類似Guava的Multimap。
4
如果hashCode()
相同,它將不會覆蓋該值。只有在equals方法相同時纔會覆蓋。
1
散列函數通常用於消除重複數據。這就是爲什麼集合類型 像Hashmap不允許存儲重複數據。 該算法已被用於數據庫,以消除檢索時可能出現的重複。
相關問題
- 1. 實現兩個哈希映射
- 2. 哈希映射對象鍵
- 3. 實現哈希映射
- 4. 合併兩個哈希映射Android
- 5. 哈希映射和併發哈希映射有什麼區別?
- 6. 通過哈希映射映射,需要返回哈希映射
- 7. 拼合哈希有兩個相同的鍵名(陣列)
- 8. 哈希映射內的哈希映射的平均值
- 9. 保留哈希映射的某些鍵
- 10. 映射到一個哈希
- 11. java哈希映射中的鍵值映射
- 12. 不同的哈希碼,但哈希映射不工作
- 13. 哈希映射的成員?
- 14. Python中的哈希映射
- 15. 我想創建一個哈希映射與內部映射和外部映射關係的哈希映射?
- 16. 插入重複鍵哈希映射
- 17. .NET Hashtable - 「相同」鍵,不同的哈希
- 18. rails/ruby合併兩個具有相同鍵的哈希,不同的值
- 19. 有關java哈希映射的幫助
- 20. JavaScript哈希映射如何實現?
- 21. 如何在perl中創建兩個數組的哈希映射(鍵值對)
- 22. 兩個哈希表,帶有雙鍵或不同解決方案的哈希表?
- 23. 如何將具有相同關鍵字的值合併到一個哈希映射中的一個值中?
- 24. 使用jcombobox同步哈希映射
- 25. 哈希映射中最有效的鍵對象類型?
- 26. 映射多個鍵,相同的值
- 27. 總結Ruby哈希中的相同鍵
- 28. 在Perl中的哈希映射
- 29. 當值的哈希集爲空時,移除哈希映射中的鍵
- 30. 多個字段映射到相同的外鍵的JPA映射