HashMap与hashcode学术版与讲故事版解释
HashMap与hashcode学术版与讲故事版解释学术化说法:
*Map是一个接口,HashMap是Map的子类,为了实例化对象
*在HashMap中维护着一个数组,数组是由元素构成的,
*每个元素中又有一个链表,所以相当于现在数组由很多链表构成,
*而链表由节点组成,每一个节点中有一个键值对(key&value)。
*所以理一下他们的关系就是(从大到小):数组-链表(元素)-键值对(节点)
*hashcode()是一个方法,一个可以获得键值对地址的方法,由计算机进行散列运算
*这个运算是程序后台运行的,我们不需要知道。
*这个运算会把地址变成一个整数形式,而这个整数就是数组的下标,会告诉你在哪一个链表
*要找到这个键值对,还需要遍历链表,找到节点。
*
*讲故事说法:
*有一个公司叫做HashMap。它拥有自己的一个仓库,这个公司特别土豪,
*买了一栋楼来做仓库,那个栋楼取名叫做数组。这家公司做的生意分很多种类,
*所以不同楼层储存不同种类的货物,如:1楼衣服,2楼家具,3楼电器。
*这家公司特别奇葩,把楼层称作 元素,所以就是,1元素衣服,2元素家具,3元素电器。
*每一个元素,也就是楼层,都是环形的,公司觉得这样好看,又好找东西,只需要转一圈就可以走遍所有房间。
*公司管这个环形的布局叫做 链表。每一个房间就是链表上的 节点。房间里面就藏一种货物,房门上有标牌提示。
*如:标牌写沙发,房间里就一堆沙发,标牌写椅子,房间里就一堆椅子。
*公司觉得英文名特牛逼,所以管标牌叫key,房间里的就是货物叫value。
*如:key是沙发,value一堆沙发,key是椅子,value一堆椅子。
*那么仓库都布局好了,不用多浪费?得放东西进去。
*公司进了一批货,沙发,要放到这个叫数组的仓库里,2楼(元素)藏家具,
*2元素(楼)里面,公司挑了一间房间,key(标牌)写上沙发,然后把那堆沙发放进去就完了。
*过了几个月,又来了一批新货,也是沙发,之前那批沙发太差,该淘汰了,
*这公司追求高科技,买了个机器人来放货物,可是告诉它“2元素(楼)”,它听不懂啊。
*公司发明了一个方法,叫hashcode(),只需要把key(标牌)输进去,它就自动给你一个整数。
*但是也不够高级,只能告诉你楼层,具体房间得让机器人自己找,不过那也是方便很多的。
*如,输入“沙发”,它自动显示2这个整数,这下机器人听懂了,找到那个2元素(楼),
*在2元素(楼)的链表(环形)转了一圈,找到key(标牌)写着沙发的房间,把之前的沙发扔了,新的放进去。
*最后理一下:
*HashMap=公司
*楼(仓库)=数组
*楼层=数组元素
*每层楼的环形结构=链表(说白了就是一圈房间)
*每一间房间=节点
*房间上的标牌=key
*房间里的货物=value
*hashcode(),一个输入key就能告诉你楼层整数的工具
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!
Java开发高端课程免费试学
大咖讲师+项目实战全面提升你的职场竞争力
- 海量实战教程
- 1V1答疑解惑
- 行业动态分析
- 大神学习路径图
相关推荐
更多2017-10-24
2017-11-23
达内就业喜报
更多>Java开班时间
-
北京 丨 11月27日
火速抢座 -
上海 丨 11月27日
火速抢座 -
广州 丨 11月27日
火速抢座 -
兰州 丨 11月27日
火速抢座 -
杭州 丨 11月27日
火速抢座 -
南京 丨 11月27日
火速抢座 -
沈阳 丨 11月27日
火速抢座 -
大连 丨 11月27日
火速抢座 -
长春 丨 11月27日
火速抢座 -
哈尔滨 丨 11月27日
火速抢座 -
济南 丨 11月27日
火速抢座 -
青岛 丨 11月27日
火速抢座 -
烟台 丨 11月27日
火速抢座 -
西安 丨 11月27日
火速抢座 -
天津 丨 11月27日
火速抢座 -
石家庄 丨 11月27日
火速抢座 -
保定 丨 11月27日
火速抢座 -
郑州 丨 11月27日
火速抢座 -
合肥 丨 11月27日
火速抢座 -
太原 丨 11月27日
火速抢座 -
苏州 丨 11月27日
火速抢座 -
武汉 丨 11月27日
火速抢座 -
成都 丨 11月27日
火速抢座 -
重庆 丨 11月27日
火速抢座 -
厦门 丨 11月27日
火速抢座 -
福州 丨 11月27日
火速抢座 -
珠海 丨 11月27日
火速抢座 -
南宁 丨 11月27日
火速抢座 -
东莞 丨 11月27日
火速抢座 -
贵阳 丨 11月27日
火速抢座 -
昆明 丨 11月27日
火速抢座 -
洛阳 丨 11月27日
火速抢座 -
临沂 丨 11月27日
火速抢座 -
潍坊 丨 11月27日
火速抢座 -
运城 丨 11月27日
火速抢座 -
呼和浩特丨11月27日
火速抢座 -
长沙 丨 11月27日
火速抢座 -
南昌 丨 11月27日
火速抢座 -
宁波 丨 11月27日
火速抢座 -
深圳 丨 11月27日
火速抢座 -
大庆 丨 11月27日
火速抢座