日常工作中 Map
绝对是我们 Java
程序员高频使用的一种数据结构,那 Map
都有哪些遍历方式呢?这篇文章阿粉就带大家看一下,看看你经常使用的是哪一种。
通过 entrySet
来遍历
1、通过 for
和 map.entrySet()
来遍历
第一种方式是采用 for
和 Map.Entry
的形式来遍历,通过遍历 map.entrySet()
获取每个 entry
的 key
和 value
,代码如下。这种方式一般也是阿粉使用的比较多的一种方式,没有什么花里胡哨的用法,就是很朴素的获取 ma
p 的 key
和 value
。
public static void testMap1(Map<Integer, Integer> map) {
long sum = 0;
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
sum += entry.getKey() + entry.getValue();
}
System.out.println(sum);
}
看过 HashMap
源码的同学应该会发现,这个遍历方式在源码中也有使用,如下图所示,
putMapEntries
方法在我们调用 putAll
方法的时候会用到。
2、通过 for
, Iterator
和 map.entrySet()
来遍历
我们第一个方法是直接通过 for
和 entrySet()
来遍历的,这次我们使用 entrySet()
的迭代器来遍历,代码如下。
public static void testMap2(Map<Integer, Integer> map) {
long sum = 0;
for (Iterator<Ma