15年来,为全国50万+企业提供互联网数字化基础应用服务。
知 识
0514-86177077
9:00-17:00(工作日)
首 页
企业400电话
Hot
网站☯建设
微网小程序
商标✡知产
网络营销推广
AI电话机器人
热
彩铃©短信
增值拓展业务
新
主页
>
知识库
> Java中对HashMap的深度分析
Java中对HashMap的深度分析
热门标签:
电话机器人的特色和创新
漯河办理400电话
腾讯地图标注商户改名注册入驻
开封便宜外呼系统报价
地图标注人员兼职
怎样把地图标注出来
淮南腾讯地图标注
商丘百应电话机器人有没有效果
黄石智能营销电销机器人效果
在Java的世界里,无论类还是各种数据,其结构的处理是整个程序的逻辑以及性能的关键。由于本人接触了一个有关性能与逻辑同时并存的问题,于是就开始研究这方面的问题。找遍了大大小小的论坛,也把《Java 虚拟机规范》,《apress,.java.collections.(2001),.bm.ocr.6.0.shareconnector》,和《Thinking in Java》翻了也找不到很好的答案,于是一气之下把JDK的 src 解压出来研究,扩然开朗,遂写此文,跟大家分享感受和顺便验证我理解还有没有漏洞。 这里就拿HashMap来研究吧。
HashMap可谓JDK的一大实用工具,把各个Object映射起来,实现了“键--值”对应的快速存取。但实际里面做了些什么呢?
在这之前,先介绍一下负载因子和容量的属性。大家都知道其实一个 HashMap 的实际容量就 因子*容量,其默认值是 16×0.75=12; 这个很重要,对效率很一定影响!当存入HashMap的对象超过这个容量时,HashMap 就会重新构造存取表。这就是一个大问题,我后面慢慢介绍,反正,如果你已经知道你大概要存放多少个对象,最好设为该实际容量的能接受的数字。
两个关键的方法,put和get:
先有这样一个概念,HashMap是声明了 Map,Cloneable, Serializable 接口,和继承了 AbstractMap 类,里面的 Iterator 其实主要都是其内部类HashIterator 和其他几个 iterator 类实现,当然还有一个很重要的继承了Map.Entry 的 Entry 内部类,由于大家都有源代码,大家有兴趣可以看看这部分,我主要想说明的是 Entry 内部类。它包含了hash,value,key 和next 这四个属性,很重要。put的源码如下
public Object put(Object key, Object value) {
Object k = maskNull(key);
这个就是判断键值是否为空,并不很深奥,其实如果为空,它会返回一个static Object 作为键值,这就是为什么HashMap允许空键值的原因。
int hash = hash(k);
int i = indexFor(hash, table.length);
这连续的两步就是 HashMap 最牛的地方!研究完我都汗颜了,其中 hash 就是通过 key 这个Object的 hashcode 进行 hash,然后通过 indexFor 获得在Object table的索引值。
table???不要惊讶,其实HashMap也神不到哪里去,它就是用 table 来放的。最牛的就是用 hash 能正确的返回索引。其中的hash算法,我跟JDK的作者 Doug 联系过,他建议我看看《The art of programing vol3》可恨的是,我之前就一直在找,我都找不到,他这样一提,我就更加急了,可惜口袋空空啊!!!
不知道大家有没有留意 put 其实是一个有返回的方法,它会把相同键值的 put 覆盖掉并返回旧的值!如下方法彻底说明了 HashMap 的结构,其实就是一个表加上在相应位置的Entry的链表:
for (Entry e = table[i]; e != null; e = e.next) {
if (e.hash == hash eq(k, e.key)) {
Object oldvalue = e.value;
e.value = value; //把新的值赋予给对应键值。
e.recordAccess(this); //空方法,留待实现
return oldvalue; //返回相同键值的对应的旧的值。
}
}
modCount++; //结构性更改的次数
addEntry(hash, k, value, i); //添加新元素,关键所在!
return null; //没有相同的键值返回
}
我们把关键的方法拿出来分析:
void addEntry(int hash, Object key, Object value, int bucketIndex) {
table[bucketIndex] = new Entry(hash, key, value, table[bucketIndex]);
因为 hash 的算法有可能令不同的键值有相同的hash码并有相同的table索引,如:key=“33”和key=Object g的hash都是-8901334,那它经过indexfor之后的索引一定都为i,这样在new的时候这个Entry的next就会指向这个原本的table[i],再有下一个也如此,形成一个链表,和put的循环对定e.next获得旧的值。到这里,HashMap的结构,大家也十分明白了吧?
if (size++ >= threshold) //这个threshold就是能实际容纳的量
resize(2 * table.length); //超出这个容量就会将Object table重构
所谓的重构也不神,就是建一个两倍大的table(我在别的论坛上看到有人说是两倍加1,把我骗了),然后再一个个indexfor进去!注意!!这就是效率!!如果你能让你的HashMap不需要重构那么多次,效率会大大提高!
说到这里也差不多了,get比put简单得多,大家,了解put,get也差不了多少了。对于collections我是认为,它是适合广泛的,当不完全适合特有的,如果大家的程序需要特殊的用途,自己写吧,其实很简单。(作者是这样跟我说的,他还建议我用LinkedHashMap,我看了源码以后发现,LinkHashMap其实就是继承HashMap的,然后override相应的方法,有兴趣的同人,自己looklook)建个 Object table,写相应的算法,就ok啦。
举个例子吧,像 Vector,list 啊什么的其实都很简单,最多就多了的同步的声明,其实如果要实现像Vector那种,插入,删除不多的,可以用一个Object table来实现,按索引存取,添加等。
如果插入,删除比较多的,可以建两个Object table,然后每个元素用含有next结构的,一个table存,如果要插入到i,但是i已经有元素,用next连起来,然后size++,并在另一个table记录其位置。
您可能感兴趣的文章:
Java中HashMap和TreeMap的区别深入理解
JAVA HashMap详细介绍和示例
java HashMap通过value反查key的代码示例
Java中HashMap和Hashtable及HashSet的区别
java遍历HashMap简单的方法
举例详解Java编程中HashMap的初始化以及遍历的方法
java无锁hashmap原理与实现详解
Java8 HashMap的实现原理分析
java使用hashMap缓存保存数据的方法
Java HashMap的工作原理
深入理解Java中的HashMap的实现机制
Java集合之HashMap用法详解
标签:
大兴安岭
红河
岳阳
拉萨
郑州
武威
亳州
马鞍山
巨人网络通讯声明:本文标题《Java中对HashMap的深度分析》,本文关键词 Java,中对,HashMap,的,深度分析,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
相关文章
下面列出与本文章《Java中对HashMap的深度分析》相关的同类信息!
Java中对HashMap的深度分析
在Java的世界里,无论类还是各种数据,其结构的处理是整个程序的逻辑以及性能的关键。由于本人接触了一个有关性能与逻辑同时并存的问题,于是就开始研究这方面的问题。找遍了大...
10-18
MongoDB开源数据库开发工具dbKoda
Southbank Software公司最近发布了 dbKoda 0.6.0 ,这是该软件的 首个发布版 。dbKoda是一款开源的 MongoDB 开发工具,采用JavaScript、...
10-18
老颜学堂:呼叫中心知识库管理的常见问题与困惑(一)
问题:联络中心知识库管理的常见业务问题有哪些? 颜晓滨:知识库绝非知识库本身,更是管理、运营品质与效率的体现。...
10-22
正则表达式,提取网页中的链接地址
tdclass=catewidth="45%"style="word-break:break-all" aclass=Mhref="http://jmfengcai.cn.alibaba.com/athena/companydetail/jmfengcai.html"onMouseDown="returnaliclick...
10-18
福建电话机器人哪个好用(电话机器人哪家好)
本文目录一览:1、哪家智能电话客服机器人效果好,比较稳定靠谱的那种?2、电销机器人哪个好用?谁给推荐一下3、电话机器人...
08-08
微软正式发布Win10有哪些亮点?主推跨平台融合
1月22日,微软召开Windows 10发布会,全方位多角度对新系统及微软未来战略规划进行了部署,诸多亮点不容错过! Windows 10是核...
10-20
宁夏电话机器人排名前十(宁夏工业机器人)
本篇文章给大家谈谈宁夏电话机器人排名前十,以及宁夏工业机器人对应的知识点,希望对各位有所帮助,不要忘了收藏本站...
08-28
丽水专业电话线路服务商,电销软件-哪家比较好
丽水专业电话线路服务商,电销软件外呼系统可以进行一键导入,号码自动拨号,24小时在线,只需短时间机器培训即可上岗,...
12-17
上海自动外呼系统厂家(外呼系统官网)
本篇文章给咱们谈谈上海主动外呼体系厂家,以及外呼体系官网对应的知识点,期望对各位有所协助,不要忘了保藏本站喔。...
11-06
沈阳外呼系统免费(沈阳外呼公司)
本文目录一览: 1、只需要交电话费的外呼系统2、什么是自动外呼系统,沈阳有做这个的吗?知道的告诉下3、外呼系统安装需要...
11-27
包含无锡电话外呼系统优势的词条
本文目录一览: 1、外呼系统有哪些优点?2、外呼系统好用吗?3、外呼系统,智能外呼机器人好处在哪里?4、外呼系统跟电...
11-27
php实现图片压缩处理
本文实例为大家分享了php实现图片压缩处理的具体代码,供大家参考,具体内容如下 说明 在项目中,经常会遇到在前端页面...
10-18
中德安联电话营销违规 领保监会2011年“1号罚单”
保监会近日开出了2011年的“1号罚单”,领受该罚单的是中德安联人寿保险有限公司(下称“中德安联”)。 保监会披露,...
10-19
ai智能电话机器人源代码(ai智能电话机器人源代码是什么)
本文目录一览: 1、人工智能电话营销机器人到底能做什么?2、ai通话是什么意思3、AI机器人是什么4、什么是电话机器人?5、...
11-27
电销卡封号图片高清图无水印(电销卡封了对自己有什么影响)
本文目录一览:1、电销电话打多了封号怎么解决?2、电销企业如何避免封号问题,怎么申请专用的电销卡?3、电销卡是什么?为...
07-10
什么样的管理者才能减少员工的离职?
1 员工的离职原因 员工的离职原因林林总总,只有两点最真实: 1、钱,没给到位; 2、心,委屈了。 这些归根到底就一条:...
10-22
呼叫中心排班三步走之人力安排篇
――排班员,从体力工作者向脑力工作者的转变 前一篇《呼叫中心排班三步走之预测篇》我们谈了如何进行话务量的准确预...
10-22
全力推动服务外包产业发展
本报讯(记者 王印)日前,区委召开常委会议,就进一步加强河东区非公有制经济组织和社会组织党建工作,大力发展服务...
10-22
电销外呼被限制如何解决?电销卡怎么样?
电销行业在大量外呼的过程中常常面临着号码被封的问题,而电销卡则成为解决这一难题的利器。本文将重点探讨电销卡在解...
11-27
南昌回拨外呼系统供应商(南昌外呼系统软件公司)
今天给各位分享南昌回拨外呼系统供应商的知识,其中也会对南昌外呼系统软件公司进行解释,如果能碰巧解决你现在面临的...
11-06
400电话怎么收费标准400的电话是怎么收费的
(400电话怎么收费标准)(400的电话是怎么收费的)以下内容由巨人小编整理发布。 50元办理400电话的流程/月,83元/月,138元/月。...
01-11
代理商办理400电话流程是怎样
众所周知,办理400电话找正规的代理商是更好的选择,省时间、省精力、省钱、功能又强大。那么代理商办理400电话流程是怎...
05-09
PHP基于PDO扩展操作mysql数据库示例
本文实例讲述了PHP基于PDO扩展操作mysql数据库。分享给大家供大家参考,具体如下: SELECT //查单条function get_sub_product(){ $res...
10-18
谷歌地图如何标记公司标?谷歌地图如何标记公司标铺?
如何公司名字标到百度地图? 地图测绘行业现在国内只一家公司在测量和商用,叫北京龙图智航科技有限公司,是家上市人...
10-08
新媒体营销代运营怎么样?
这是一个新媒体的新时代,传统媒体大佬都要退位,新媒体所衍化的微信公众号、自媒体平台等新兴媒体,已经成为每个品牌...
03-01
如何找到自己在公司的位置?在百度如何找到自己的公司?
在别人的世界里如何找到自己的位置? 当你想走进别人的世界时`你就要具备一定的适应能力...如果你没有`那就让对方走进你...
11-26
福州电商电销防封软件如何办理-请看!
福州电商电销防封软件如何办理任意布局”的功能。外呼系统不只能协助企业提升客服工作效率,现在电销公司不使用外呼系...
01-16
WIn7系统中无法找到Media Player播放器的快速解决办法
在我们使用的电脑中媒体播放器,又称媒体播放机,而这通常是指电脑中用来播放多媒体的播放软件,把解码器聚集在一起,...
10-20
中国铁塔启动2021年电力电缆产品集采,需求量1677万米
中国铁塔官方消息显示,中国铁塔2021年度电力电缆(铜缆)产品集中采购项目已具备招标条件,现进行公开招标。 本次集采...
10-13
资阳企业外呼系统(四川外呼公司)
本文目录一览: 1、能够简略说一下外呼体系是什么吗?2、外呼体系是什么?3、外呼体系是怎样用的?4、外呼体系怎样处理?...
11-28
商标品牌定位有助于企业整合资源打造强势品牌
自二位大师艾?里斯( Al Ries)和杰克?特劳特( Jack Trout)的定位理论盛行于20世纪以来,定位已被上升到了战略的高度。定位是产品...
10-23
怎么查看win10的安装日期? win10系统安装日期的两种查询方法
查看Windows10 电脑系统安装日期常用的方法有两个, 一个通过系统设置查看,另一个通过命令查看 。该怎么实现呢?下面我们...
10-19
白名单电销卡办理-电销卡套餐
白名单电销卡办理-电销卡套餐 电销卡套餐 巨人通信主营电销卡、防封电话卡、电销专用卡、高频不封外呼系统、呼叫中心、...
06-23
400电话为什么这么流行,而800电话不再受关注
现在大街小巷都能看到400电话字样,无论是在电视广告、还是站牌广告都带有400号码,原因是客户可以轻易通过400进行咨询,...
05-09
电话机器人telrobot(外呼电话机器人)
2018是人工智能飞速开展德律风呆板人telrobot的一年德律风呆板人telrobot,率先与人工智能牵手的电销企业曾经明白到了它的“...
11-25
郑州联通群呼机器人详情-详情报价
郑州联通群呼机器人详情外呼系统集识别、交互于一身,不但可与客户交流,更能给出专业的业务描述和问题解答。将电销系...
01-15
中外运-敦豪荣获2010中国最佳联络中心电话营销奖
1 月 5 日 记者报道:日前, 10 月 4 日 中国中央电视台中国新闻报道了由国家工业和信息化部软件与集成电路促进中心、中国...
10-22
百度标注地图联系电话,百度地图标注中心联系电话?
百度地图标注联系电话是多少? 您好,请拨打客服电话010-56799399。 由于百度不让打上电话,只能给您截图了 直接联系百度的...
10-08
400电话申请需要企业提供什么证明?申请400电话之后有什么优势?
企业电话,大概是每个企业所具备的一个电话,而400电话作为企业常用的电话,在众多企业电话中脱颖而出,不仅如此,40...
04-19
ofo总部退押现场 退不了押金扣辆小黄车怎么样
物联网技术是当下最前沿的高新科技,物联网并不是单独的个体,而是由众多的智能设备、物联网卡等组成。物联网系统能够...
10-13
河北省机器人电销外包招聘(河北省机器人电销外包招聘网)
本篇文章给大家谈谈河北省机器人电销外包招聘,以及河北省机器人电销外包招聘网对应的知识点,希望对各位有所帮助,不...
03-04
外呼系统管理
伴随着社会的发展,传统电销方式的弊端日益突出。不仅仅是员工的效率低,企业的成本支出也不断升高。这样的发展趋势对...
10-26
石家庄电话机器人哪里有(石家庄电话机器人哪里有卖的啊)
本文目录一览:1、电话机器人在哪里买2、请问打电话机器人产品哪家可以一线多发打电话?3、哪里有电话机器人4、服务类的...
07-19
宇高通讯录音系统服务于世达工具售后客服中心
世达工具(上海)有限公司原名丹纳赫工具(上海)有限公司(隶属于美国丹纳赫集团),负责世达工具在中国的销售,在浦...
10-19
400电话如何申请办理?(400电话怎样申请的)
400电话如何申请办理?持本单位盖红章的组织机构代码证复印件或营业执照副本和公章、财务章、经办人有效证件办理,签署...
11-07
外呼系统网关怎么设置(外呼系统功能介绍)
本篇文章给大家谈谈外呼系统网关怎么设置,以及外呼系统功能介绍对应的知识点,希望对各位有所帮助,不要忘了收藏本站...
05-17
电话回访机器人(电话回访机器人话术)
A:“听到电话回访机器人了吧电话回访机器人,信用卡逾期又被提醒了电话回访机器人,不能陪你去逛街了。” B:“唉,真...
11-07
青岛家政服务网络中心开张 可提供八大类服务
“您好,欢迎拨打青岛市家政服务网络中心热线……”23日,随着青岛市家政服务网络中心正式开张纳客,从接听、受理、推...
10-19
Windows 8.1RTM该如何激活 Win8密钥就搞定Windows 8.1激活
日前,Windows 8.1 RTM各种版本已经在坊间泄露开来,许多迫不及待的用户也开始跃跃欲试,但可能有人会疑惑,Windows 8.1RTM该如...
10-20
容联七陌智能客服助力快陪练,打造最大在线钢琴陪练平台
2018年8月,快陪练宣布获得 5000 万人民币(等值美金)天使轮融资,高榕资本领投,IDG 资本跟投。同时该笔融资刷新了艺术教...
10-19
智能电销机器人(电销机器人开发)
叮咚智能机器人 当前智能电销机器人,世界正掀起新一轮科技革命和产业革命,在物联网、大数据、云计算、认知科学等科...
11-28
Java中对HashMap的深度分析
在Java的世界里,无论类还是各种数据,其结构的处理是整个程序的逻辑以及性能的关键。由于本人接触了一个有关性能与逻辑同时并存的问题,于是就开始研究这方面的问题。找遍了大...
10-18
本页收集关于Java中对HashMap的深度分析的相关信息资讯供网民参考!
推荐文章
太原电销卡外呼系统线路
声通电话机器人
安徽外呼防封系统是什么
宇信外呼系统
地图标注N
北京电销外呼系统稳定吗
外呼客户crm管理系统
钉钉里面可以申请400电话吗
电话机器人哪几家比较好
地图标注道路新增
显示本地号码的外呼线路
东莞松山湖地图标注
广州香港400电话 怎么申请
绍兴防封电销电话卡
上海公司外呼系统
讯鸟外呼系统软件
学海导航地图标注
爱达智能电话机器人
湖南手机自动外呼系统线路
美团洗浴中心地图标注
宁波百度地图标注
地图标注同学去向
湖南外呼网络电话系统
武汉高频外呼系统违法吗
机器人电销招生话术
电销机器人软件合法吗
地图标注赤峰
淮安云外呼系统多少钱
高频电销卡
鹤壁语音外呼系统
电销机器人创业前景
外呼电话机器人怎么样
内蒙古智能外呼系统怎么样
申请400电话的客服
天润融通外呼线路
ai电销机器人有效果
长沙云外呼系统供应商
常州通信外呼系统推广
来宾400电话申请
广东外呼增值业务线路解决方案
河南移动外呼系统
金华电销卡防封
潍坊crm外呼系统招商
400电话申请有
外呼系统哪家品牌好
梧州电销机器人供应商
宿州全自动外呼系统报价
徐州小型外呼系统
下载电销机器人软件
太原语音电销机器人价格
外呼线路哪家质量好
地图标注娘娘垻卫星地图
江西自动外呼系统
四川电话系统外呼
申请400电话流程排名
开通400电话去哪里办理
外呼系统好销售吗
潍坊哪里能办理400电话
外呼系统必须用笔记本吗
中国地图标注有美食
ai电话机器人取代传统电销
腾讯物流公司地图标注
语音外呼系统收费
外呼系统点对点
武威电话机器人厂家
临沧电话外呼管理系统
GPS地图标注app
IA智能电销机器人
辽宁电销卡外呼系统原理是什么
仙剑1地图标注
容联云电销机器人价格
寿光高德地图标注中心
中国地图标注省会城市图标
天津电话智能外呼系统联系方式
合肥呼叫中心外呼系统供应商
沈阳防封电销机器人供应商
屯昌县防封电销卡
智能外呼系统教程
400电话郑州办理处
地图标注定位覆盖
南宁市机器人外呼系统多少钱
湛江crm外呼系统供应商
称心的电话机器人
开封防封电销电话卡
好用的电话机器人使用方法
襄阳高德地图标注地点注册
贵州电销机器人电话
百度地图标注抓取
电话机器人是什么他
商城县地图标注位置
马鞍山高德地图标注
小区地图标注教程
联通客服电话机器人如何变粤语
科创板电话外呼系统有什么弊端
爱尔兰地图标注
大同办理400电话
电话机器人厂家排名
百度地图标注公司名
内江电话外呼系统
大连外呼增值业务线路解决方案
常州crm外呼系统厂家
濮阳人工智能电话机器人价钱
湖北外呼电销机器人招商
海南电销语音机器人
受人称赞的400电话办理
言通电话机器人软件
知名的电销机器人
外呼系统显示黑名单号码
微赞电销机器人广告
作战地图标注
伊春外呼系统接口对接
北京华尔讯外呼系统图片
杭州智能外呼系统供应商
昆明网络外呼系统供应商
沈阳400电话咋办理
智能地产电销机器人哪里有
洛阳外呼系统api
电话机器人市场怎么样
腾讯店面地图标注
邯郸手机外呼系统
Java中对HashMap的深度分析
上一篇:
Java数据库存取技术
下一篇:
Java线程模型缺陷
一起分享吧
产品关键词: Java中对HashMap的深度分析 Java,中对,HashMap,的,深度分析,