范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

来自华为开发者社区!深度解析HashMap底层实现架构

  Map接口大家应该都听说过吧?它是在Java中对键值对进行存储的一种常用方式,同样其中的HashMap我相信大家应该也不会陌生,一说到HashMap,我想稍微知道点的小伙伴应该都说是:这是存储键值对的,存储方式是数组加链表的形式。但是其中真正是如何进行存储以及它的底层架构是如何实现的,这些你有了解吗?
  在Java开发的面试之中,HashMap底层实现的提问和考察已经是司空见惯的了。今天就来和大家分析一下Map接口的详细使用以及HashMap的底层是如何实现的。
  1、Map接口和List接口是什么关系?
  对于这个问题,如果非要说这两个接口之间存在怎样的关系的话,那无非就只有一个,就都是集合。存放数据的。在其他上面,Map接口和List接口的联系其实并不大,为什么这么说?
  先来看List接口,关于List接口我在之前也和大家提到过,它是继承于Collection接口的,是Collection接口的子接口,只是用于对数据的单列存储。继承关系如下图:
  而Map接口是一个顶层接口,下面包含了很多不同的实现类,它是用于对键值对(key:value)进行存储的,继承关系如下图:
  2、Map有哪些常用的实现类?
  上面关于Map的继承结构我们已经了解了,我们也看了其中很多不同的实现类,这些类很多也是我们比较熟悉的,比如HashMap、TreeMap以及HashTable。在面试的时候,面试官往往就还会问,Map接口下有哪些常用的实现类以及它们的作用,那么接下来我们就来对这几个接口进行简单的介绍和分析一下。
  HashMap:上面也说了,HashMap的底层实现是数组+链表+红黑树的形式的,同时它的数组的默认初始容量是16、扩容因子为0.75,每次采用2倍的扩容。也就是说,每当我们数组中的存储容量达到75%的时候,就需要对数组容量进行2倍的扩容。
  HashTable:HashTable接口是线程安全,但是很早之前有使用,现在几乎属于一个遗留类了,在开发中不建议使用。
  ConcurrentHashMap:这是现阶段使用使用比较多的一种线程安全的Map实现类。在1.7以前使用的是分段锁机制实现的线程安全的。但是在1.8以后使用synchronized关键字实现的线程安全。
  其中关于HashMap的考察和提问在面试中是最频繁的,这也是在日常开发中最应该深入理解和掌握的。所以接下来就主要和大家详细分析一下HashMap的实现原理以及面试中的常考问题。
  3、请阐述HashMap的put过程?
  我们知道HaahMap使用put的方式进行数据的存储,其中有两个参数,分别是key和value,那么关于这个键值对是如何进行储存的呢?我们接下来进行分析一下。
  注意:这里所说的相同并不一定是key的数值相同,而是存在某种相同的特征,具体是哪种特征让我们继续往下看!
  HashMap将将要存储的值按照key计算其对应的数组下标,如果对应的数组下标的位置上是没有元素的,那么就将存储的元素存放上去,但是如果该位置上已经存在元素了,那么这就需要用到我们上面所说的链表存储了,将数据按照链表的存储顺序依次向下存储就可以了。这就是put的简单过程,存储结果如下:
  但是我们有时候存储的数据会很多,那么如果一直使用链表的形式进行数据的存储的话就或造成我们的链表的长度非常大,这样无论在进行删除还是在进行插入操作都是十分麻烦的,因此对于这种情况应该怎么办呢?
  这里就涉及到了一个链表中数据存储时,进行"树化"和"链化"的一个过程,那么什么是"树化"和"链化"呢?
  当我们在对键值对进行存储的时候,如果我们在同一个数组下标下存储的数据过多的话,就会造成我们的链表长度过长,导致进行删除和插入操作比较麻烦,所以在java中规定,当链表长度大于8时,我们会对链表进行"树化"操作,将其转换成一颗红黑树(一种二叉树,左边节点的值小于根节点,右边节点的值大于根节点),这样我们在对元素进行查找时,就类似于进行二分查找了,这样的查找效率就会大大增加。
  但是当我们进行删除操作,将其中的某些节点删除了之后,链表的长度不再大于8了,这个时候怎么办?难道就要赶紧将红黑树转化为链表的形式吗?其实并不是,只有当链表的长度小于6的时候,我们才会将红黑树重新转化为链表,这个过程就叫做"链化"。
  4、链表中是按照怎样的顺序存放数据的?
  我们现在已经知道了HashMap中的元素是如何存放的,但是有时候面试官可能还会问我们,在HashMap中,向链表中存储元素是在头结点存储的还是在尾节点存储的?
  这个我们需要知道,对于HashMap中链表元素的存储。
  在JDK1.7以及前是在头结点插入的,在JDK1.8之后是在尾节点插入的。
  本文分享自华为云社区《【图文并茂】深度解析HashMap高频面试及底层实现结构!【奔跑吧!JAVA】》,原文作者:灰小猿 。

一批新职业正落地开花,这些职业格外亮眼7月底,北京市人力社保局发布2021年北京市人力资源市场薪酬调查报告(二季度),其中,许多新职业格外亮眼。比如服务机器人应用技术员食品安全管理师等职业,同时又属于人力资源和社会保障口碑榜前十名Mate40缺货,小米消失,沉寂的才是黑马在正式步入5G时代以后,各大手机厂商都开始危机起来了,就怕跟当时2G4G时候的洗牌,使得诺基亚和HTC被淘汰了。因此小米跟OV等一些厂商,都在努力地发布5G新款机型,来获得更多的市你用的第一款手机是什么放到现在全是先进技术你用的第一款手机是什么人生中使用的第一部手机,时间要回到2000年,美好的童年记忆中它的到来让我从此喜欢上了数码科技。索尼爱立信T28索尼爱立信T281999年面世,当时它是全球最9月份上市!三星GalaxyA52s5G,搭载高通骁龙778G由于今年取消了Note系列,三星今年下半年的旗舰新品成为了GalaxyZFold3GalaxyZFlip3两款折叠屏手机。不过,由于高昂的售价等多方面原因,国内消费者对于三星的折叠美观实用,安心用电,奥睿科新国标NKS系列六孔插排如今,家庭的智能化程度越来越高,电子产品越来越多。原来装修中预设的墙壁插头不够用,往往需要增加插头和插座来满足使用需求。市场上的插头插座种类很多,便宜又贵。毕竟每天都在用,安全又琐Maven美文B1。28x42第一印象刚刚收到Maven。B1。28x42这款小双,简单谈谈第一印象和上手观测体验。售价先说售价,官方的零售价为900刀,在激烈的视场竞争中还是比较靠谱的。Maven属于是直销,他们给自戴助听器会造成耳朵发炎吗?戴助听器会造成耳朵发炎吗?应该是不会!一般助听器不会长期经常戴,每天总有取下来的时候,一般睡觉多数都会摘下来,不会因长期闷堵耳道,引起发炎。如果长期戴着,而且堵塞的挺严密,耳内的耳来看看,锂电池的制作过程,哪些与直线电机模组有关新能源汽车驶入快车道,锂电池是新能源汽车的核心部件,随着新能源汽车和储能市场对锂电池需求的日益扩张,行业进入高速发展期,有锂走天下,动力电池行业延续了2020年年底的快速增长,企业手机通信产业观察荣耀国内销量升至第三屏下摄像头渗透率维持低位每经记者刘春山今年下半年,智能手机市场竞争日趋激烈,市场格局陡增变化,各家厂商也拿出旗舰手机抢在苹果新机之前登场。自2021年3月起,每日经济新闻联合第三方数据机构CINNORes为确保苹果秋季发布会安全举行,苹果积极推动倡导员工接种疫苗笔歌科技独家报道苹果方面消息,为确保秋季新品发布会能够顺利安全地如期举行,苹果积极推动倡导员工接种疫苗,一起来围观。01秋季发布会改为线上录播方式举行随着时间一天天的过去,眼看离苹智能电视成摆家里的广告屏,这些国产品牌的做法值得点赞如今,面对一些长达一两分钟的开机广告,用户们多多少少都会感到反感,毕竟在很多人的记忆当中,电视应当是即开即看,而不是在等待的过程中被迫观看广告。对这一现象,人民日报最近也发布了切实
49英寸液晶拼接屏的选择注意事项1品牌选择是关键由于大屏幕拼接产品具有技术含量高维护难度大资金投入大建设难度大等特点,用户一定要注意选择具有资质认证的大品牌产品,因为这些企业不仅在行业内具有良好的市场口碑,更重要软圆弧led显示屏的独特优势有哪些?圆弧led显示屏具有薄轻高像素密度显示平面可弯曲安装成本低等特性,可实现各种弧度的要求,提供多种屏幕尺寸及清晰度其主要广泛应用于电力调度中心交通指挥中心军队指挥中心航天监控中心城市46英寸液晶拼接屏在显示终端应用的7大优势多媒体显示技术的不断提高以及显示产品的不断更新,越来越多的消费者喜欢把各种显示产品应用在各个领域。46英寸液晶拼接无疑是最受观众和商家们选择的多媒体显示设备。由于46英寸液晶拼接是液晶拼接屏老化问题如何处理液晶拼接屏由于长时间工作很轻易使某些像素点过热,一旦超过极限会导致永久性损坏,这就形成了常说的坏点。由于55英寸液晶拼接屏的像素点是由液晶体构成,因此当连续满负荷工作96小时以上时别人还在盲目堆积,比亚迪已经靠技术实现低能耗长续航购买10万级别车型的消费者不仅需要更实惠的购车价格,更需要更低廉的使用成本,比亚迪牢牢抓住消费者的痛点,在这方面做了更为极致的优化。对于开发一台车来说,更换一块密度更高容量更大的电集智能与安全于一身,比亚迪e2成十万级纯电动标杆随着新能源车的飞速发展,购买一台10万元左右的纯电动车成为了不少人的选择,而这一价位的车型笔者推荐比亚迪e2,原因很简单因为安全和智能,这两点对于一台电动车来说,或者对于出行的人来有豚则灵!新能源汽车在天之灵又显灵脱口秀鼻祖黄西说如果说周奇墨是脱口秀的天花板,那我肯定是脱口秀在天之灵了。这话不仅幽默,而且毫不夸张。作为曾经在白宫给奥巴马表演脱口秀的人,黄西在业内的地位极高。就像当前的新能源汽能装,好开,安全一个不能少,买比亚迪e2就够了暑假结束,神兽们也都回归校园,开始新的学习生活。为了让孩子们专心学业,很多家长都选择开车送娃上下学。在早晚高峰的拥堵路面高频往返,不仅考验家长们的脾气和车技,同样也考验车辆的舒适度偶像还是实力派?全新比亚迪e2全球首发跨界而来从口红日历到水果叉输入法,一系列跨界产品让近600岁的故宫博物院一跃成为全球顶级网红。一时间,无数潮流年轻一代纷纷前往打卡,体验穿越的跨界时尚。事实上,当代消费者对跨界产品的热爱远比亚迪海豚搭载超级安全的刀片电池新安全比亚迪海豚搭载超级安全的刀片电池,拥有纯电动车专属的安全车身结构,以及完备的主被动安全配置,在安全性能方面具有无可比拟的先天优势。海豚还拥有安全的乘员舱环境,DiPilot智续航超1200公里,宋PLUSDMI行驶5700公里分享当初买车就冲着超长续航去的,比亚迪宋PLUSDMI真的没让我失望,满油满电的情况下,续航1200公里一点都不是问题,用车5700公里以来,怎么说呢,非常满意的吧,我买的是2021款