map遍历的效能

本文对比了两种遍历HashMap的方法,一种是先获取key再获取value,另一种是直接获取Entry对象。通过分析发现,第二种方法避免了通过key查找value的过程,从而提高了遍历效率。
项目中使用了Findbug来进行代码的检查,有个针对map遍历的提示。我的代码如下:
String temp = null;
Iterator<String> ite = param.keySet().iterator();
while(ite.hasNext()){
temp = ite.next();
sb.append(temp);
sb.append(param.get(temp).toString());
}
说是效能上不咋地。建议用如下方法:
Entry<String, String> temp = null;
Iterator<Entry<String, String>> ite = param.entrySet().iterator();
while(ite.hasNext()){
temp = ite.next();
sb.append(temp.getKey());
sb.append(temp.getValue());
}
从代码上理解,第一种方式获取key之后,要从HASHMAP中通过HASH函数定位到value值。而第二种方式,没有这种定位的消耗了,性能也有一定的提升。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值