面试题:HashMap底层查找的时间复杂度?

问题分析

这个问题问的是查找的时间夫复杂度,考察的是HashMap底层数据的存储,我们直到java8之后,HashMap的存储结构为数组+链表+红黑树。所以结合HashMap的存储结构来进行回答。

问题回答

  • 理想情况下,哈希不冲突,可以直接找到结果,所以O(1)
  • 在最差的情况下,HashMap保存的数据都在链表中保存,所以需要遍历链表,所以时间复杂度为O(n)。

但是一个好的Hash函数,冲突是比较少的,且HashMap在达到阈值时,还会自动扩展。所以一般情况下,可以认为理想情况下的O(1)就是HashMap查找的时间复杂度。

HashMap底层查找的时间复杂度相关推荐

  1. 面试必备:HashMap底层数据结构?jdk1.8算法优化,hash冲突,扩容等问题

    面试必备系列不会长篇理论求证,直接上答案,仅供参考,不喜勿喷. 1.能说说HashMap的底层原理吗? HashMap<String,String> map = new HashMap&l ...

  2. hashMap 底层原理+LinkedHashMap 底层原理+常见面试题

    1.源码 java1.7 hashMap 底层实现是数组+链表 java1.8 对上面进行优化 数组+链表+红黑树 2.hashmap 是怎么保存数据的. 在hashmap 中有这样一个结构 Node ...

  3. java map原理_Java HashMap底层原理分析

    前两天面试的时候,被面试官问到HashMap底层原理,之前只会用,底层实现完全没看过,这两天补了补功课,写篇文章记录一下,好记性不如烂笔头啊,毕竟这年头脑子它记不住东西了哈哈哈.好了,言归正传,今天我 ...

  4. hashmap的特性?HashMap底层源码,数据结构?Hashmap和hashtable ConcurrentHashMap区别?

    1.hashmap的特性? 允许空键和空值(但空键只有一个,且放在第一位) 元素是无序的,而且顺序会不定时改变 key 用 Set 存放,所以想做到 key 不允许重复,key 对应的类需要重写 ha ...

  5. 深度解剖HashMap底层原理

    HashMap底层原理 写在前面 JDK1.7版本--HashMap java.1.7源码分析 new一个HashMap实例的存储流程图如下: API常用方法 API中重要的变量 第一步:申明一个Ha ...

  6. HashMap底层红黑树实现(自己实现一个简单的红黑树)

    文章整理于小刘老师讲源码 视频学习链接:小刘老师讲解红黑树 JDK集合源码之HashMap解析(上) JDK集合源码之HashMap解析(下) 1.树结构入门 1.1 什么是树? 树(tree)是一种 ...

  7. 一次性讲清HashMap底层原理!

    前言 快速入门 存储:put方法put(key,value) 查询:get方法get(key) java代码如下 import java.util.HashMap; import java.util. ...

  8. HashMap底层原理分析

    HashMap底层分析 一.JDK1.8之前 二.JDK1.8后 1.JDK1.8中的涉及到的数据结构 1.1 位桶数组 1.2 数组元素Node 一.JDK1.8之前   JDK1.8 之前 Has ...

  9. HashMap 底层源码细致分析

    JDK集合HashMap 底层源码细致分析 前言 提示:对于初始 HashMap 的小伙伴来说,不推荐直接硬啃,建议先看一下如下几个视频教程之后再回头好好理解.(一遍看不懂则反复看,一小块一小块的找对 ...

  10. 聊聊Java系列-集合之HashMap底层结构原理

    前言           由于HashMap在我们的工作和面试中会经常遇到,所以搞懂HashMap的底层结构原理就显得十分有必要了.在JDK1.8之前,HashMap的底层采用的数据结构是数组+链表, ...

最新文章

  1. 使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析
  2. java 获取已有字体,java获取本机全部可用字体
  3. 数据库 'MessageManage' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。...
  4. 2012秋江苏省计算机二级上机试题,江苏省高校计算机等级考试二级2012秋资料.doc...
  5. carsim学习笔记3——仿真环境(驾驶员道路环境)
  6. 选择结构_扩展if-else语句
  7. mysql的含义及特点_MySQL——基本概念
  8. Spring Social入门–第2部分
  9. docker Registry镜像仓库
  10. rocketmq 消息指定_进大厂必备的RocketMQ你会吗?
  11. Slog29_支配vue框架初阶项目之博客网站-注册页面-单选按钮
  12. centos7查看路由的命令_centos7系统设置***客户端及查看设置路由表router
  13. 05 搭建4节点hadoop集群
  14. 小程序学习笔记(3)-模板的操作
  15. Windows10新版本设置卓越性能
  16. 思科GNS3模拟器安装包和流程
  17. 论文阅读笔记《Optimal Image-Based Guidance of Mobile Manipulators Using Direct Visual Servoing》
  18. RHCA学习记录之RH318(一)-环境准备
  19. 职场常用问题分析与管理方法
  20. ruby 中的sort 和 sort_by

热门文章

  1. bzoj 3680: 吊打XXX
  2. 关于动态规格的新理解
  3. mysql 忘记密码, 亲测有效解决方案,Access denied for user ‘root’@’localhost’ (using password: YES)...
  4. 组合数学+gcd BZOJ3505 [Cqoi2014]数三角形
  5. 韩顺平老师的学习方法
  6. LA 3027 并查集
  7. [原]ActiveReport6 for net使用(一)
  8. Mysql5.7中文乱码
  9. pytorch自我错误总结
  10. Vector Math for 3D Computer Graphics (Bradley Kjell 著)