数据结构与算法学习笔记:哈希表(上)


目录

需求 - 引入哈希表(空间换时间)

哈希表(Hash Table)

哈希冲突(Hash Collision)

JDK1.8哈希冲突解决方案

哈希函数

如何生成key的哈希值

Long和Double的哈希值

字符串哈希值

JDK提供的hashcode

自定义对象哈希值


需求 - 引入哈希表(空间换时间)

数据结构与算法学习笔记:哈希表(上)

哈希表(Hash Table)

数据结构与算法学习笔记:哈希表(上)

哈希冲突(Hash Collision)

数据结构与算法学习笔记:哈希表(上)

JDK1.8哈希冲突解决方案

数据结构与算法学习笔记:哈希表(上)

哈希函数

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)                  数据结构与算法学习笔记:哈希表(上)

  • 与出来的结果,必然小于2的幂(也就是数组的长度)
  • 不管与之前的数有多大,与运算后的值必然小于2的幂(也就是数组的长度)

如何生成key的哈希值

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

Long和Double的哈希值

  • Java中哈希值必须是 int 类型

数据结构与算法学习笔记:哈希表(上)

字符串哈希值

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

  • JDK提供的hashcode

数据结构与算法学习笔记:哈希表(上)

JDK提供的hashcode

  • Integer提供的hashcode

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

  • Float提供的hashcode

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

  • Long提供的hashcode

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

  • Double提供的hashcode

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

  • 测试

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

自定义对象哈希值

数据结构与算法学习笔记:哈希表(上)

  • 案例演示

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

  • 默认hashcode,跟内存地址有关

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)

  • 自己提供hashcode

数据结构与算法学习笔记:哈希表(上)

  • 测试

数据结构与算法学习笔记:哈希表(上)

数据结构与算法学习笔记:哈希表(上)