首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
hashMap内部具体如何实现的?
[问答题]
请你解释一下hashMap具体如何实现的?
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(68)
分享
纠错
7个回答
添加回答
1
西瓜同学🏀
hashmap是数组+链表实现,数组是主体部分,而数组中的每一个元素可以就是一个链表的头节点。链表主要是为了用来解决hash冲突。
发表于 2019-05-05 13:28:57
回复(0)
更多回答
3
叶落君不见
hashmap 是以数组为基础。首先将关键字通过哈希函数,获得存储位置,即数组的下标。当两个关键字,计算出的数组下标相同时,需要使用链表。即数组中每一个元素都可以看作是链表。
发表于 2019-02-13 21:09:42
回复(0)
1
TiAmo_9955
HashMap是使用
hash算法
,然后基于
数组+链表+红黑树
来实现的
发表于 2019-05-03 21:19:43
回复(0)
1
GodLiu
hashmap是数组+链表实现,数组是主体部分,而数组中的每一个元素可以就是一个链表的头节点。链表主要是为了用来解决hash冲突。
发表于 2019-03-08 01:38:22
回复(0)
0
—坏小孩
hashmap,基于数组和列表,在j dk1.7中是基于数组和链表的实现,在jdl1.8中引入了红黑数,由于主要储存结构是数组,所以说。,在往里面放元素的时候,需要计算出存放位置,也就是下标。这个计算方式是通过计算,传入元素hashcode值进行右移再和数组容量-1进行按位与运算的结果。由于不同元素的hashcode值可能一样,索引就会造成计算出的下标相同,也就是hash冲突,女韩科然出现就是就算出的结果,链表和和黑梳的引入就是为了解决,而是冲突这个问题。,嗯,当出现了hash冲突。也就是计算的下标位置有元素时。在j dk1点钟1.7中将其按头杀法,插入数组中对应位置的链表中。在j dk1.8的时候是采用尾插法。因为在采用头插法,并发环境下会产生一种循环队列的问题。jdk1.8引入红黑树的原因是。为了牺牲一部分的空间去换取查询的效率。因为红黑树的查询效率比链表要高,当列表长度过长,查询效率会变得相当慢,所以,当链表的长度达到8。,而且数组的长度小于64的时候,就会将列表转化为红黑树。
发表于 2020-04-22 19:05:48
回复(1)
0
哲雪
hashMap以键值对的方式存储数据,数据存储是基于数组加链表实现
发表于 2019-12-13 20:49:52
回复(0)
0
江畔8670
hashmap是键值对的方式存储数据的,hashcode和equals方法用来向集合中添加或检索元素,
发表于 2019-04-29 18:11:08
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Java
Java工程师
上传者:
小小
难度:
7条回答
68收藏
2846浏览
热门推荐
相关试题
DHCP的报文交互过程
计算机网络基础
评论
(1)
请回答问题
图形推理
评论
(1)
树的高度是指根到叶子节点的最长路径...
树
评论
(2)
下列选项属于HTML5新特性的是()
HTML
评论
(1)
自动管理停车场桩位系统
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题