首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Map集合中value()与keySet()、entrySet()区别

在Map集合中 values():方法是获取集合中的所有的值—-没有键,没有对应关系, KeySet(): 将Map中所有的键存入到set集合中。因为set具备迭代器。...所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。...keySet():迭代后只能通过get()取key entrySet(): Set> entrySet() //返回此映射中包含的映射关系的 Set 视图。...()方法将map集合中的映射关系取出(这个关系就是Map.Entry类型) Set> entrySet = map.entrySet(); //将关系集合...返回的是Entry接口 说明:keySet()的速度比entrySet()慢了很多,也就是keySet方式遍历Map的性能不如entrySet性能好 为了提高性能,以后多考虑用entrySet()

44730
您找到你想要的搜索结果了吗?
是的
没有找到

高效编程之HashMap的entrysetkeyset比较

的操作;再往下面走的,这个entryset方法我不太明白是啥意思,看了1.6的API,告诉我返回一个set视图,这样的翻译感觉略水...直接告诉我返回set集合不就好了么......(),一种是entryset(),但是这两个方法哪个效率更高,使你的代码更棒呢?...:168 entryset:76 多测试几次的输入结果: [java] view plain copy keyset:171 entryset:70 =======   keyset:169...entryset:81 =======   keyset:175 entryset:74 结果很明显,entryset速度比keyset快了两倍多点; hashmap.entryset,在set集合中存放的是...只是把hashmap中key放到一个set集合中去,还是通过迭代器去遍历,然后再通过 hashmap.get(key)方法拿到value; 差别在哪里呢?

1.7K100

java遍历entry,java遍历map entry.set

entrySet … JAVA中遍历Map的四种方法-entrySet,keySet,values,entr… 2019年4月29日 一般来讲使用entrySet的方式进行遍历是效率最高的,因为hashMap...而使… Map 遍历方式 entrySetkeySet 对比_“罐装面包”的… 2019年12月18日 遍历方法: publicstaticlongergodicWithEntrySet(Map...月10日 在我近期的项目中,我就选择使用了keySet()方法来遍历Map,最后在验收时使用FindBug做静态代码检测时没有通过验收,最终无奈就改用了entrySet()方法遍历,成功验收了… JAVA...Entry peek; //该类型… Java中遍历Map的两种方法:keySetentrySet – 简书 2016年11月3日 System.out.println(s+”,”+map.get(...s)); } //方法二 Set> entryseSet=map.entrySet(); for (Map.Entry entry:entryseSet) { … Java中遍历Map的两种方法:keySet

94430

jdk源码分析之HashMap--遍历性能知多少?

理论上我们可以得出entryset遍历方式比keyset性能要好,那为什么性能要好?...简单粗暴,不妨我们分析一下HashMap中的entrySetkeySet是先方式: entrySet()代码 可以看出第一次调用entrySet的时候是生成了一个EntrySet,我们测试代码中用得的增强...for循环(jdk1.5引入),其本质就是调用iterator(),所以遍历的时候是调用EntrySet中的iterator方法,看一下newEntryIterator实现 Iterator<Map.Entry...我们再看一下keySet的代码 同样,第一次调用entrySet的时候是生成了一个KeySet,我们测试代码中用得的增强for循环其实就是遍历的时候调用KeySet中的iterator方法,看一下...或许这时候,我们就可以下结论说,entryset遍历HashMap比keyset方式块,是这样吗?

33540

HashMap有几种遍历方法?推荐使用哪种?

1.JDK 8 之前的遍历 JDK 8 之前主要使用 EntrySetKeySet 进行遍历,具体实现代码如下。...1.1 EntrySet 遍历 EntrySet 是早期 HashMap 遍历的主要方法,其实现代码如下: public static void main(String[] args) { //...,我们可以看出使用 KeySet 遍历,其性能是不如 EntrySet 的,因为 KeySet 其实循环了两遍集合,第一遍循环是循环 Key,而获取 Value 有需要使用 map.get(key),相当于有循环了一遍集合...1.3 EntrySet 迭代器遍历 EntrySetKeySet 除了以上直接循环外,我们还可以使用它们的迭代器进行循环,如 EntrySet 的迭代器实现代码如下: public static...总结 本文介绍了 7 种 HashMap 的遍历方式,其中 JDK 8 之前主要使用 EntrySetKeySet 的遍历方式,而 KeySet 的遍历方式性能比较低,一般不推荐使用。

1.1K10

一口气写了 HashMap 的 7种遍历方式,被同事夸了

,因为 parallelStream 为多线程版本性能一定是最好的,所以就不参与测试了,其他 6 个方法的测试结果如下: ?...从以上结果可以看出,两个 entrySet 的性能相近,并且执行速度最快,接下来是 stream ,然后是两个 keySet,性能最差的是 KeySet 。...性能分析 EntrySet 之所以比 KeySet 的性能高是因为,KeySet 在循环时使用了 map.get(key),而 map.get(key) 相当于又遍历了一遍 Map 集合去查询 key...所以,EntrySet 的性能比 KeySet 的性能高出了一倍,因为 KeySet 相当于循环了两遍 Map 集合,而 EntrySet 只循环了一遍。...总结 本文我们讲了 HashMap 4 种遍历方式:迭代器、for、lambda、stream,以及具体的 7 种遍历方法,综合性能和安全性来看,我们应该尽量使用迭代器(Iterator)来遍历 EntrySet

40600

HashMap 的 7 种遍历方式与性能分析!(强烈推荐)

本文先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足,本文主要内容如下图所示: ?...但每种类型下又有不同的实现方式,因此具体的遍历方式又可以分为以下 7 种: 使用迭代器(Iterator)EntrySet 的方式进行遍历; 使用迭代器(Iterator)KeySet 的方式进行遍历;...使用 For Each EntrySet 的方式进行遍历; 使用 For Each KeySet 的方式进行遍历; 使用 Lambda 表达式的方式进行遍历; 使用 Streams API 单线程的方式进行遍历...所以通过字节码来看,使用 EntrySet 和 KeySet 代码差别不是很大,并不像网上说的那样 KeySet 的性能远不如 EntrySet,因此从性能的角度来说 EntrySetKeySet...总结 本文我们讲了 HashMap 4 大类(迭代器、for、lambda、stream)遍历方式,以及具体的 7 种遍历方法,除了 Stream 的并行循环,其他几种遍历方法的性能差别不大,但从简洁性和优雅性上来看

10.8K40
领券