首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

我们会把数据放到value,如果想拿的话可以通过key去取,也可以直接从entry对象里去拿; 所以如果我们拿到了一个有"东西"的hashmap的时候,我们可以有两种方式拿到里面的value; 一种是keyset...()) {                   hashmap.get(iterator.next());            }                System.out.print("keyset...(Calendar.getInstance().getTimeInMillis() - bs);            }      }   输入结果: [java] view plain copy keyset...:168 entryset:76 多测试几次的输入结果: [java] view plain copy keyset:171 entryset:70 =======   keyset:169...entryset:81 =======   keyset:175 entryset:74 结果很明显,entryset速度比keyset快了两倍多点; hashmap.entryset,在set集合中存放的是

1.7K100

为什么阿里不推荐使用 keySet() 遍历HashMap?

HashMap的遍历方式现如今有非常多种: 1、 使用迭代器(Iterator); 2、 使用keySet()获取键的集合,然后通过增强的for循环遍历键; 3、 使用entrySet()获取键值对的集合...1、 keySet遍历,需要经过两次遍历; 2、 entrySet遍历,只需要一次遍历; 其中keySet遍历了两次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value...(当然也可能是我没有查阅到靠谱的文章,欢迎指正) keySet如何遍历了两次 我们首先写一段代码,使用keySet遍历Map。...返回此集合中元素的迭代器 HashMap.KeySet#iterator() 我们查看HashMap中keySet类对该方法的实现。...final class KeySet extends AbstractSet { public final int size() { return size

26820

【Java入门提高篇】Day24 Java容器类详解(七)HashMap源码分析(下)

KeySet   我们先来看看KeySet,HashMap中的成员变量keySet保存了所有的Key集合,事实上,这是继承自它的父类AbstractMap的成员变量: transient Set...keySet;   而keySet方法,也是覆盖了父类的方法: //AbstractMap 中的keySet方法 public Set keySet() { Set...= new KeySet(); keySet = ks; } return ks; }   可以看到,AbstractMap中keySet...是一个AbstractSet类型,而覆盖后的keySet方法中,keySet被赋值为KeySet类型。...翻翻构造器可以发现,在构造器中并没有初始化keySet,而是在KeySet方法中对keySet进行的初始化(HashMap中都是使用类似的懒加载机制),KeySet是HashMap中的一个内部类,让我们再来看看这个

46030

【Java入门提高篇】Day24 Java容器类详解(七)HashMap源码分析(下)

KeySet   我们先来看看KeySet,HashMap中的成员变量keySet保存了所有的Key集合,事实上,这是继承自它的父类AbstractMap的成员变量: transient Set...keySet;   而keySet方法,也是覆盖了父类的方法: //AbstractMap 中的keySet方法 public Set keySet() { Set...= new KeySet(); keySet = ks; } return ks; }   可以看到,AbstractMap中keySet...是一个AbstractSet类型,而覆盖后的keySet方法中,keySet被赋值为KeySet类型。...翻翻构造器可以发现,在构造器中并没有初始化keySet,而是在KeySet方法中对keySet进行的初始化(HashMap中都是使用类似的懒加载机制),KeySet是HashMap中的一个内部类,让我们再来看看这个

47730

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 方式进行遍历。...keySet 其实是遍历了 2 次,第一次是转为 Iterator 对象,第二次是从 hashMap 中取出 key 所对应的 value值。...values()返回的是 V 值集合,是一个 list 集合对象;keySet()返回的是 K 值集合,是一个 Set 集合对象;entrySet()返回的是 K-V 值组合集合。

28620
领券