首页 > 试题广场 >

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

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

A项错误,HashMap是一个用于存储Key-Value 对结构的集合类。
C项错误,HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体
故本题选BD。
编辑于 2021-11-18 13:36:27 回复(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)
<p>数组加链表</p><p><br></p>
发表于 2020-09-12 15:17:02 回复(0)

C为什么错?

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

HashMap 是什么?
HashMap 是一种常用的数据结构,可以通过“键(key)—值(value)”的形式快速存取数据。比如你想存储“姓名 → 电话号码”,用 HashMap 就很方便,因为它能通过名字(键)立刻找到号码(值),不用一个个去翻找。


它的特点:

  1. 插入和查找快:在理想情况下,插入或查找一个数据只需要 O(1) 的时间,也就是“常数时间”,非常高效。

  2. 解决冲突的方法:当不同的键计算出的哈希值相同,就会发生“冲突”。HashMap 里通常会用链表(或者后来的红黑树)来把这些冲突的元素挂在一起。

  3. 不是链表本身:HashMap 不是单纯用链表把所有数据连起来,而是“哈希表 + 链表”的结合。


逐个看题目选项:

  • A ❌ HashMap 当然可以处理和存储字符串数据,这是它的常见用途。

  • B ✅ HashMap 确实会用链表来解决哈希冲突。

  • C ❌ HashMap 不是简单的链表,它的核心是“哈希表”。

  • D ✅ 插入数据时的平均时间复杂度是 O(1)。


📌 总结
HashMap 就像一个超快的字典,能在极短时间内根据“键”找到对应的“值”。它的关键优势是查找和插入速度快,内部通过哈希算法定位,再用链表等结构解决冲突。

发表于 2025-08-28 18:58:36 回复(0)