Map集合中value()、keySet()和entrySet()以及性能的分析
来源:互联网 发布:日本手办产业数据 编辑:程序博客网 时间:2024/06/03 23:37
在Map集合中
values():方法是获取集合中的所有的值----没有键,没有对应关系,
KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取keyentrySet():Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图。 Map.Entry表示映射关系。entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口 。
下面通过实例来看看:
说明:
①Set<K> keySet():返回值是个只存放key值的Set集合(集合中无序存放的),迭代后只能通过get()取key。
②Set<Map.Entry<K,V>> entrySet():返回映射所包含的映射关系的Set集合(一个关系就是一个键-值对),就是把(key-value)作为一个整体一对一对地存放到Set集合当中的。迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口。
③虽然使用keyset及entryset来进行遍历能取得相同的结果,但两者的遍历速度是有差别的,keySet()的速度比entrySet()慢了很多,也就是keySet方式遍历Map的性能不如entrySet性能好,为了提高性能,以后多考虑用entrySet()方式来进行遍历。
问题:为什么keySet方式遍历Map的性能不如entrySet性能?
通过查看源代码发现,调用这个方法keySetMap.keySet()会生成KeyIterator迭代器,其next方法只返回其key值.
Java代码
Java代码
二者在此时的性能应该是相同的,但方式一再取得key所对应的value时,此时还要访问Map的这个方法,这时,方式一多遍历了一次table.
也就是上述案例中的
查看源码可以看出
这个方法就是二者性能差别的主要原因.
阅读全文
0 0
- Map集合中value()、keySet()和entrySet()以及性能的分析
- Map集合中value()、keySet()和entrySet()以及性能的分析
- Map集合的四种遍历方式以及Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()与keySet()、entrySet()区别
- Map遍历的keySet()和entrySet()性能差异原因
- Map集合中两个重要的取值方法---keySet()和entrySet()
- java中map集合的两种取出方式keySet和entrySet
- 集合-(Map-keySet)-(Map-entrySet)
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- 【mysql 性能优化篇】优化子查询
- IDEA There is no configured/running web-servers found! Please, run any web-configuration and hit the
- maven本地仓库添加sqljdbc
- 抓包
- sql server2008密钥
- Map集合中value()、keySet()和entrySet()以及性能的分析
- JavaScript问题与总结
- 正确修改MAC用户名
- 快速上手MQ之activeMQ(4)--消息持久化
- 西门子plc s7-200 读取plc内部时间的方法详解
- 有品css样式进度
- Tomcat 集群配置1
- [Excel]excel如何设置输入数字后单元格自动填充颜色
- java注解