哈希映射究竟是如何在内部存储数据......我知道它会计算密钥的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. 合并两个哈希映射Android
- 4. 哈希映射内的哈希映射的平均值
- 5. 保留哈希映射的某些键
- 6. 映射到一个哈希
- 7. java哈希映射中的键值映射
- 8. 不同的哈希码,但哈希映射不工作
- 9. Python中的哈希映射
- 10. 我想创建一个哈希映射与内部映射和外部映射关系的哈希映射?
- 11. .NET Hashtable - “相同”键,不同的哈希
- 12. 有关java哈希映射的帮助
- 13. 如何在perl中创建两个数组的哈希映射(键值对)
- 14. JavaScript哈希映射如何实现?
- 15. 两个哈希表,带有双键或不同解决方案的哈希表?
- 16. 如何将具有相同关键字的值合并到一个哈希映射中的一个值中?
- 17. 使用jcombobox同步哈希映射
- 18. 哈希映射中最有效的键对象类型?
- 19. 当值的哈希集为空时,移除哈希映射中的键
- 20. 多个字段映射到相同的外键的JPA映射
- 21. Ruby:同时循环两个哈希,一个是嵌套哈希
- 22. 连接四个哈希函数:映射关闭元素以关闭哈希键
- 23. 带两个键的哈希映射 - 查找链接到一个键的所有元素。 C++
- 24. 使用哈希映射
- 25. 如何检查两个哈希密码是相同的?
- 26. 哈希映射,哈希集合,哈希字典之间有什么区别?
- 27. 从两个列表创建一个哈希映射
- 28. 搜索一个哈希映射
- 29. Java |比较四个哈希映射
- 30. 哈希映射2个值Java