美文网首页
HashMap原理,哈希函数,哈希值

HashMap原理,哈希函数,哈希值

作者: 咆哮女孩 | 来源:发表于2019-05-24 05:04 被阅读0次

哈希函数:

哈希函数是任何可以把任何长度的数据映射到固定长度的数据的函数。
也就是任何输入都能算出一个哈希值。
这个函数不可逆,也就是无法通过输入结果算出key值;
计算方法:hash值计算
如 :

put("Kobe",90);
put("Katie",89);

"Kobe"的哈希值:042E0136

哈希值:

哈希函数返回的这个固定长度叫哈希值。

HashMap:

hashmap数据结构:数组加链表,Java8,优化成链表长度到8时转换成红黑树储存结构。


image.png

1.表示一个节点的代码实现:

class node{
int hash;//key的哈希值
k Key;
v Value;
node Next;
}

2.往hashmap中插入一个节点

put(k Key,v Value){
hash(Key);//插入时求key的哈希值(唯一)
index = hash&(n-1);//哈希值与数组长度取余,来判断应该插入数组的哪个位置,如果该位置已经有数据就向链表或者tree上append一个节点。
}

3.通过key来查询数据,O(n)

v get(Object key){
hash(Key);//取哈希值
index = hash&(n-1);//求出index,即数组上所在的位置
}

相关文章

  • HashMap原理,哈希函数,哈希值

    哈希函数: 哈希函数是任何可以把任何长度的数据映射到固定长度的数据的函数。也就是任何输入都能算出一个哈希值。这个函...

  • 计算文件哈希值

    什么是哈希值? 哈希值(hash values)是使用哈希函数(hash function)计算得到的值。哈希函数...

  • HashMap面试基础

    HashMap 必备知识——哈希表 哈希表 哈希函数 哈希碰撞 解决办法 1. 拉链法 2. 线性探测法 Hash...

  • 哈希表(散列表)

    哈希表的原理: 在已知key的情况下,通过哈希函数f(),在数组中去寻找具体的值f(key)。这里面f()称为哈希...

  • HashMap集合存放自定义对象

    HashMap的底层也是哈希表,由于是哈希表所以不保证存取有序,也是不同步的。HashMap中的哈希值是作用在ke...

  • 哈希算法(或名:散列算法)

    文图简述HashMap中使用的哈希算法 放数据 key.hasCode() 得到键的哈希值 用哈希值,计算一个下标...

  • 分析 JDK 源码丨Java HashMap

    HashMap 结构示意图 HashMap 是数组和链表组合组成的复杂结构,哈希值决定了键值在数组的位置,当哈希值...

  • HashMap

    HashMap本质是哈希表,通过k-v存储数据,映射关系通过哈希函数构造。 哈希函数的实现方式 1.直接定址法:取...

  • 区块链之——哈希函数

      哈希函数,说的直白一点就是一种密码学中的思想,通过给哈希函数输入一个值产生一个哈希值,通过这个哈希值逆向得不到...

  • HashMap、HashSet、HashTable、Linked

    HashMap 实现原理 HashMap 概述 HashMap 是基于哈希表的 Map 接口非同步实现,允许使用 ...

网友评论

      本文标题:HashMap原理,哈希函数,哈希值

      本文链接:https://www.haomeiwen.com/subject/zxcwzqtx.html