首页 > 试题广场 >

以下关于HashMap描述正确的是:

[不定项选择题]
以下关于HashMap描述正确的是:
  • HashMap不能用来处理或存储字符串数据
  • HashMap会用链表来解决冲突问题
  • HashMap是基于链表的思想,将数据连接起来
  • HashMap插入数据时,时间复杂度为O(1)
推荐
【正确答案】BD
【解析】
本题考察技术名词。

A项错误,HashMap是一个用于存储Key-Value 对结构的集合类。
C项错误,HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体
故本题选BD。
编辑于 2021-11-18 13:36:27 回复(0)
<p>数组加链表</p><p><br></p>
发表于 2020-09-12 15:17:02 回复(0)
当发生哈希冲突的时候,HashMap是采用了链地址法,也就是数组+链表的方式
哈希表的主干是数组,其时间复杂度是O(1)
编辑于 2019-03-21 11:00:10 回复(0)

java JDK1.6中hashMap结构如上图:数组(分桶)+链表
原理:先获取插入数据的哈希值,根据哈希值判断该数据应该放入哪个数组元素(桶)中,
再对该数组元素(桶)中的链表进行遍历,检验是否有重复键(key),如果存在重复键则覆盖该键的值(value),
如果不冲突则在链表末尾加入该元素。(B答案解析)
D答案是理想状态。简而言之,设计者通过动态调整数组长度和链表长度,使每个数组中链表的长度接近常数值,从而使得插入时间复杂度接近O(1)。(实现过程稍微复杂一些,感兴趣的可以自行搜索“hashmap原理分析”)~
发表于 2019-03-03 17:24:38 回复(4)

C为什么错?

发表于 2019-10-23 15:53:33 回复(1)