根据自己的想法实现HashMap
我的思路:
1. 设置一个长度为26的数组,数组每个元素都指向一个单链表(现在认为,如果26改成26*2+10可能会更合理)
2. 哈希函数的选择:根据关键字的第一个字符,通过计算(mod 26的操作返回的值),找到数组对应的存储数据单链表
3. 单链表存储的数据的结构
typedef struct item
{
char* key;
char* value;
struct item *next;
}node;
4. 主要操作
put操作: 根据key找到对应的单链表,遍历该单链表,其中数据的key字段值与当前key相同,则更新该数据的value字段值.
get操作: 根据key找到对应的单链表,遍历该单链表,其中数据的key字段值与当前key相同,则找到,返回value字段值.
没想到我的想法是对的~~
以下摘自: http://zhangshixi.javaeye.com/blog/672697
HashMap的数据结构:
在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。
从上图中可以看出,HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。
- 大小: 13.6 KB
分享到:
相关推荐
C语言实现hashMap,包含创建hashMap、插入hashMap、查找hashMap、删除hashMap,已经若干经典的hash函数。文章链接:https://blog.csdn.net/sxf1061700625/article/details/109594495
hashmap相关的面试题
用js代码实现java中hashmap 的所有功能
一线大厂BATJ面试题讲解-hashmap原理实现
hashmap的C++实现,对于学习C++方面的很有用
hashmap的底层及源码解析,很适合大家的学习,不要积分。
listview实现,hashmaplistview实现,hashmaplistview实现,hashmaplistview实现,hashmaplistview实现,hashmaplistview实现,hashmaplistview实现,hashmaplistview实现,hashmap
HashMap、HashTable和HashSet是Java中常用的数据结构,它们的底层实现原理以及区别如下:HashMap底层实现原理: HashMap基于哈希表(HashTable)实现,它通过散列算法将键值对映射到数组中。在HashMap中,每个键值对...
用数据结构的思想实现java中的类hashmap
Javascript实现和操作HashMap,压缩包里面有hashmap定义和操作的例子
Java语言使用hashmap实现向购物车添加删除修改商品,显示商品信息
详见http://blog.csdn.net/huaxun66/article/details/53036625
javaScript模拟的HashMap数据结构,可以方便的put和get。几乎和Java中HashMap类的功能一模一样。非常好用的!
比较分析Vector、ArrayList和hashtable hashmap数据结构
HashMap的一个数据结构 锁升级:锁升级过程 resize的过程在开发中 怎么保证容器它线程安全后就是数据插入过程使用的头插法 但是头插法会造成一些问题等等等等的那个等等的那个等等的那个等等的那个等等的那个等等的...
下面我们将深入探讨 HashMap 的数据结构、 put 方法的实现细节和 Hash 码的计算过程。 HashMap 的数据结构 HashMap 的数据结构可以分为两部分:数组和链表。数组是 HashMap 的基本结构,链表是数组元素的具体实现...
NULL 博文链接:https://128kj.iteye.com/blog/1749453
用hashmap结构将字典文件中的词条装入内存,并基于该结构进行查询
HashMap类.rar
HashMap数据结构,HashMap的构造方法,HashMap的put,HashMap的get