Chasel_s  最近去面试遇到了面试官问的很多问题,很多东西可能之后真正被人问过之后才会发现自己学了假的知识,

答对的就不说了,今天栽在java的数据结构上了,面试官今天问了我一个问题,数组和hashmap谁的效率快,为什么?

言归正传下面来解释。

很多时候面试一般会问hashmap和hashtable的速度谁快,这个一般面试java的人都会答上来,hashmap牺牲了

线程安全提高了效率,hashtable牺牲了效率换来了线程安全,之前还有一个面试官问了我一个问题,hashmap为什么

线程不安全,其实我是看过hashmap的源码的,我就给他解释源码,你们知道的之中解释是不在点上的,后来我回来

思考了一下发现回答其实很简单hashmap底层维护了一个数组,当多线程的时候对这个数组操作是不安全的。

下面就说说数组和hashmap谁的速度快,这其实是个坑,我其实当时回答其实对了一半,我说hashmap比数组快,

因为hashmap底层是使用一个链表实现的,所以速度快,很多时候我都是这么的只知其一不知其二,其实这种回答不全,

没错是快但是是在插入和删除的时候,在查询的时候因为数组有下标所以在查询集合中某个元素时,一般都会对数组干拜

下风。

Chasel_s对数据结构真的不是很懂,因为Chasel_s大学里面数据结构是在大一开的,那是还是菜鸟一枚,根本就没有

学会数据结构,看来以后要花一点时间补补。欢迎大佬们补充和指出问题。

hashmap和数组哪个速度快相关推荐

  1. HashMap中数组初始化的秘密

    2019独角兽企业重金招聘Python工程师标准>>> 我们知道,在新建一个HashMap对象时,无论传的initialCapacity参数值为多少,最总HashMap中数组的长度始 ...

  2. 2020-08-17:为什么HashMap中数组的容量为2的次幂?

    2020-08-17:为什么HashMap中数组的容量为2的次幂? 前言 为什么HashMap中数组的容量为2的次幂? 前言 每日一题专栏 为什么HashMap中数组的容量为2的次幂? 因为在插入元素 ...

  3. 霍涛的HashMap由 数组 + 链表 组成

    霍涛认为HashMap 基于哈希表的 Map 接口实现,是以 key-value 存储形式存在,即主要用来存放键值对.HashMap 的实现不是同步的,这意味着它不是线程安全的.它的 key.valu ...

  4. HashMap之数组下标计算

    HashMap之数组下标计算 前提 loadFactor capacity threshold put时,数组下标计算 hash函数 putVal函数 核心计算 扩容时,下标的重置计算 前提 Hash ...

  5. HashMap如何计算数组下标

    讨论 代码环境为JDK1.8.0 211 HashMap如何计算数组下标 首先我们看看String的hashCode是如何计算的(出自JDK1.8.0 211 java.lang.String 145 ...

  6. JAVA 基本数据结构--数组、链表、ArrayList、Linkedlist、hashmap、hashtab等

    概要 线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列.本章先介绍线性表的几个基本组成部分:数组.单向链表.双向链表:随后给出双向链表的C.C++和Java三种语言的实现. ...

  7. hashmap 扩容是元素还是数组_HashMap的扩容机制---resize()

    面试的时候闻到了Hashmap的扩容机制,之前只看到了Hasmap的实现机制,补一下基础知识,讲的非常好 原文链接: Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复 ...

  8. esp8266接收到的数据如何存放到数组中_Java中HashMap的实现原理

    最近面试中被问及Java中HashMap的原理,瞬间无言以对,因此痛定思痛觉得研究一番. 一.Java中的hashCode和equals 1.关于hashCode hashCode的存在主要是用于查找 ...

  9. java温故笔记(二)java的数组HashMap、ConcurrentHashMap、ArrayList、LinkedList

    为什么80%的码农都做不了架构师?>>>    HashMap 摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型.随着JDK(Java Develo ...

最新文章

  1. R语言将字符型(Character)变量转化为数值型(Numeric)
  2. Zend Studio 8.0.1 官方汉化包安装 解决文本中文乱码
  3. 不是变量 win10_在win10下安装manim
  4. TurboMail邮件服务器荣膺“2012年度中国行业信息化最佳产品奖”
  5. boost::hana::transform用法的测试程序
  6. Java注解配置rest服务_Spring Boot 注解—常用注解
  7. java 类说明,java基础类型说明
  8. js 获取td高度_JS或jQuery获取宽高度
  9. jQuery 开始动画,停止动画
  10. Redis单机数据库实现
  11. 数据结构——数组以及n维数组
  12. ThrottleStop CPU频率调节
  13. R语言分组画条形图——qplot
  14. SpringBoot集成腾讯云短信实现注册/登录功能
  15. unity设置iOS手机震动
  16. 【时间复杂度】你还在担心时间复杂度太高吗?
  17. VPS云服务器搭建FTP并连接
  18. 拖库还是撞库?网易邮箱罗生门
  19. 计算机网络技术 选修 沪科版教案,高中物理第3章从电表电路到集成电路3.5逻辑电路与集成电路教案沪科版选修3_1...
  20. 登录服务器显示需要输入密码,远程服务器每次都需要输入账号密码

热门文章

  1. 夫妻, 是先离开的人幸福,还是后离开的人幸福?
  2. 解决ViewPager嵌套WebView时滑动冲突问题
  3. 黑客教父龚蔚:是谁打开了潘多拉的魔盒
  4. echarts.js 下载
  5. 教你怎么打印出实际大小的身份证
  6. 为什么大家都喜欢买白色的汽车
  7. 从零开始免费搭建自己的博客(一)——本地搭建hexo框架
  8. win11+虚拟机VMware+win10+Anaconda+Tensorflow
  9. 计算机网络 华东理工大学 第1章测试
  10. RocketMQ—Producer(三)发送方式和消息类型