游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

来自华为开发者社区!深度解析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】》,原文作者:灰小猿。

移动机器人牛在哪,AGV和AMR谁才是仓储物流的未来?谈到仓储物流机器人,其属于工业机器人的范畴之内,相信绝大多数行业人员会第一时间想到这几年仓储热门明星AGV。事实上仓储物流机器人包含了以上主要几类机器人,绝大多数人都未能……企业绩效考核流于形式?组织绩效与OKR目标管理结合使用才是王企业绩效考核流于形式?组织绩效与OKR目标管理结合使用才是王道!曾看到《哈佛商业评论》的研究评论说:凡是采用绩效管理的公司,比没有采用绩效管理的公司,具有更高的盈利,更佳……投影机做RED检测认证办理投影机做RED检测认证办理步骤。投影机,是一种可以将图像或视频投射到幕布上的设备,可以通过不同的接口同计算机、VCD、DVD、BD、游戏机、DV等相连接播放相应的视频信号。但一……三十而已香奈儿被黑的最惨的一次,贫穷限制了我的想象最近最火的剧,当属《三十而已》啦,剧中的中产太太顾佳,为了能和更高阶层的富豪太太搭上关系,费尽心机参加了富豪太太的聚会,顾佳在合影的时候把自己的香奈儿藏起来,……芯片上游传来好消息,武汉着力打造国家科技创新中心助力科技发展向往的武汉近日,有消息称华为麒麟9000库存已经消耗殆尽,台积电在2019年底为华为打造的高端芯片终于还是面临用完的险境,这其实也是老美扼杀中国高端芯片于摇篮的险恶用心。严峻的……又一家攻克14nmFinFET工艺的国产晶圆代工厂来了,明年在半导体设计、制造及封测三大领域中,国内公司最薄弱的环节是半导体制造,目前英特尔、三星、台积电三大公司的制造工艺已经微缩到了14nm、10nm及7nm节点,国内最大的晶圆代工厂……骁龙888都跑不满的60帧游戏,iQOONeo5为何能实现1暑期一直都是一个换机的旺季,有不少准大学生在准备着自己上大学所需的电子产品,入手一款新手机自然是不容错过的。而在众多机型中,iQOONeo5在两千元价位段中成为了一大热门,是许……安兔兔发布用户偏好榜,你的每一个习惯,大数据都知道安兔兔发布2021年第二季度用户偏好榜,根据大数据细化智能手机各项数据,分析用户手机屏幕尺寸、分辨率、刷新率、处理器、内存等各项数据信息,基于安兔兔庞大的平台用户数量,因此最终……骁龙870配LCD高刷屏,到底怎么样?iQOONeo5活力版我是万万没想到,iQOO在发布了iQOONeo5这样一款性能强,价格给力的产品之后,又推出一台骁龙870的超性价比手机。iQOONeo5活力版其实更像是面向更多年轻用户的一款手……华为官宣发布鸿蒙系统,6月2日开始你会使用吗?我的10。8寸平板已经用上了,流畅度杠杠滴,果断抛弃安卓,手机等收到推送立马更新鸿蒙。感谢华为,不断对技术的投入,以及说到做到的诚信,让国家在这场高科技领域的斗争中有一张坚实的……传统电商商家如何快速转型小程序电商?方法来了传统电商是指:基于某东、某宝等平台,开店做生意的模式。小程序电商是指:基于2017年诞生的微信小程序,开发一个商城小程序,然后用商城小程序开店、做生意的模式。小程序……日本制造业王牌不想用,却别无选择!对于产业机器人,各位是一个什么样的理解呢?或许多少都听说过这样一个名词,但是真正的了解到的人并不是很多。最近的产业用机器人多重视替代人类工作的机械集合,一定程度上可以自动运行类……
HarmonyOS驱动华为全屋智能再升级让智能家体验更近一步(中国,东莞,2021年10月23日)华为开发者大会2021(Together)如期在东莞松山湖举行,华为消费者BG首席战略官邵洋带来了华为全屋智能的重磅战略发布在Harmon……丰柚学堂以优质财商课,助力国民分享经济增长红利2020年初,新冠疫情迅速席卷全球,对全球公共卫生与经济造成了极大冲击,国内A股市场全面下跌,美股4次熔断更是让久经沙场的华尔街经营瞠目结舌。时代的一粒灰,落到个人头上就是一座……重新复活的丰田牛魔王为何要使用宝马的发动机与底盘?概念图曾几何时每当提到丰田牛魔王(Supra)都会令无数朋友唏嘘不已,在那个日本车企百花齐放的时代,各路优秀的性能车频出,而丰田牛魔绝对是最耀眼的一款;可物是人非,日本的……浅谈过量空气系数与汽车发动机功率之间的关系今天有个朋友询问鄙人,为什么车子在进行急加速的时候会采取加浓喷射,既然加农喷射会导致空燃比适度的降低,那么从理论上看混合气体浓度增加应该导致燃烧更加不彻底才对,那么车子在急加速……全金属机身的机械键盘能做到多么简洁,IQUNIXF60sIQUNIX一直坚持的苹果风式简约设计和习惯用金属作为产品主要材质而被广大用户调侃为‘铝厂’,与‘刚厂赛睿’‘灯厂雷蛇’‘画厂QPAD’这些外设品牌称呼类似,说明IQUNIX与……人生第一台SUV,XRV没有的它也有,带你看RS3很多人都说90后比70、80后更愿意花钱买车,个人也比较赞同这个观点。一方面可能是因为大家都心系远方,想趁着年轻多去看看外面的世界;另一方面也可能是碍于楼市价格实在高不可攀,倒……云游戏时代来临,带你了解负载均衡的秘密【新网云资讯】5G网络的建设和试商用在全球各地如火如荼地展开,拥有高于百倍4G网络的速度和超低延迟的5G网络似乎将助推云游戏全面发展和普及。近日,iPhone13系列正式……SquidWelp企业域名仲裁的可能性,比收购高出8倍【新网域名资讯】据外媒报道,领域数据分析初创公司SquidWelp数据管理副总裁早些时候在一系列SMS消息和TikTok视频中,宣布了一份令人震惊的报告:在SquidWelp深……华为智慧屏V75Super不止智慧,满足你对电视的所有美好想也许你准备给家里升级一下电视,也许乔迁新居需要一台电视,只是面对市场上众多的机型,你容易陷入纠结:到底选择哪一款呢?不妨想一想你的需求是什么:老人看电视、小孩看动画学网课、你也……至少68个西班牙官方机构的电子邮件账户被入侵【新网邮箱资讯】7月14日,西班牙执法机构逮捕了16名网络犯罪分子,犯罪团伙通过电子邮件欺诈技术将恶意软件安装在目标用户的计算机中,再设法将受害人的资金转移到他们自己的账户上。……最好的底牌,两个字!值得一看01一个人最好的底牌,不是外貌,不是身份,不是金钱,不是权利,而是这两个字靠谱!靠谱的人,不轻易许诺,许下便会做到;品行端正,心地善良;待……行车被迫违章,别忘了行车记录仪的关键操作今天早上开车上班,在距离我去小区不远的十字路口,刚好遇到红灯,我正常停车。可是等路灯开启后,在我车前方大概三、四辆车前,一辆面包车不走,人们纷纷压线变道,人们的车都变道完了,那……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网