首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

高效编程之HashMap的entryset和keyset比较

,只能慢慢去读,先把简单的不懂的解决; 比如beanfactory通过扫描器拿到了注解标记的那些类,都是放到一个hashmap中,然后文件名就是key,文件就是value;首先都会有一个 "map".entryset...的操作;再往下面走的,这个entryset方法我不太明白是啥意思,看了1.6的API,告诉我返回一个set视图,这样的翻译感觉略水...直接告诉我返回set集合不就好了么......value,如果想拿的话可以通过key去取,也可以直接从entry对象里去拿; 所以如果我们拿到了一个有"东西"的hashmap的时候,我们可以有两种方式拿到里面的value; 一种是keyset(),一种是entryset...:76 多测试几次的输入结果: keyset:171 entryset:70 ======= keyset:169 entryset:81 ======= keyset:175 entryset:74...结果很明显,entryset速度比keyset快了两倍多点; hashmap.entryset,在set集合中存放的是entry对象。

59730

高效编程之HashMap的entryset和keyset比较

,只能慢慢去读,先把简单的不懂的解决; 比如beanfactory通过扫描器拿到了注解标记的那些类,都是放到一个hashmap中,然后文件名就是key,文件就是value;首先都会有一个 "map".entryset...的操作;再往下面走的,这个entryset方法我不太明白是啥意思,看了1.6的API,告诉我返回一个set视图,这样的翻译感觉略水...直接告诉我返回set集合不就好了么......value,如果想拿的话可以通过key去取,也可以直接从entry对象里去拿; 所以如果我们拿到了一个有"东西"的hashmap的时候,我们可以有两种方式拿到里面的value; 一种是keyset(),一种是entryset...:76 多测试几次的输入结果: [java] view plain copy keyset:171 entryset:70 =======   keyset:169 entryset:81 =...======   keyset:175 entryset:74 结果很明显,entryset速度比keyset快了两倍多点; hashmap.entryset,在set集合中存放的是entry对象。

1.7K100

Java中遍历Map集合的五种方式

文章目录 方式一 通过Map.keySet使用iterator遍历 方式二 通过Map.entrySet使用iterator遍历 方式三 通过Map.keySet遍历 方式四 通过For-Each迭代entries...,使用Map.entrySet遍历 方式五 使用lambda表达式forEach遍历 总结 方式一 通过Map.keySet使用iterator遍历 @Test public void testHashMap1...(开发中推荐使用) 总结 推荐使用 entrySet 遍历 Map 类集合 KV (文章中的第四种方式),而不是 keySet 方式进行遍历。...而 entrySet 只是遍历了一次,就把 key 和 value 都放到了 entry 中,效率更高。...values()返回的是 V 值集合,是一个 list 集合对象;keySet()返回的是 K 值集合,是一个 Set 集合对象;entrySet()返回的是 K-V 值组合集合。

27320

Java HashMap 遍历方式性能探讨

关于HashMap的实现这里就不展开了,具体可以参考 JDK7与JDK8中HashMap的实现 JDK8之前,可以使用keySet或者entrySet来遍历HashMap,JDK8中引入了map.foreach...而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。...1. keySet和entrySet 1.1 基本用法 keySet: ? entrySet: ? 源码上看: keySet: ? entrySet: ?...其实这里已经很明显了,当要得到某个value时,keySet还需要从HashMap中get,entrySet相比keySet少了遍历table的过程,这也是两者性能上的主要差别。 2....Map.foreach本质仍然是entrySet ? 配合lambda表达式一起使用,操作起来更加方便。 2.1 使用Java8的foreach+lambda表达式遍历Map ?

1.6K120

Java 中九种 Map 的遍历方式,你一般用的是哪种呢?

通过 entrySet 来遍历 1、通过 for 和 map.entrySet() 来遍历 第一种方式是采用 for 和 Map.Entry 的形式来遍历,通过遍历 map.entrySet() 获取每个...2、通过 for, Iterator 和 map.entrySet() 来遍历 我们第一个方法是直接通过 for 和 entrySet() 来遍历的,这次我们使用 entrySet() 的迭代器来遍历,...通过 keySet 来遍历 上面的这三种方式虽然代码的写法不同,但是都是通过遍历 map.entrySet() 来获取结果的,殊途同归。接下来我们看另外的一组。...4、通过 for 和 map.keySet() 来遍历 前面的遍历是通过 map.entrySet() 来遍历,这里我们通过 map.keySet() 来遍历,顾名思义前者是保存 entry 的集合,后者是保存...在普通的遍历方法中 entrySet() 的方法要比使用 keySet() 的方法好。

40420
领券