摘要:for (Entry tempEntry : mmap.entrySet()) {tempEntry.getKey()。在java早期版本中,迭代器的使用非常频繁,而且它可以实现将entry对象整个移除集合。

上一期我们已经解释完HashMap的原理,在了解原理的基础上使用HashMap会更加简单明了。

面试官:请说一下怎么遍历HashMap。

「java面试」不同于ArrayList和数组,HashMap要这么遍历...

熊喵:

第一种:使用for-each迭代entrySet

Map<String, String> mmap = new HashMap<String, String>();for (Entry<String, String> tempEntry : mmap.entrySet()) {tempEntry.getKey();tempEntry.getValue();}

看过上一期的小伙伴都知道entry是什么,这里就不赘述了。这里就是把HashMap中的Entry对象通过我们新创建的tempEntry作为中介遍历。

第二种:先通过临时变量取出entrySet,再遍历。

Set<Entry<String, String>> entrySet = map.entrySet();for (Entry<String, String> entry : entrySet) {entry.getKey();entry.getValue();}

这种方式与第一种不同的是先将entrySet取出,再进行遍历。如果程序中还有其他地方使用entrySet集合的地方,这种方式比较好用。

第三种:使用for-each迭代keySet,再通过get()取出对应key的value

Map<String, String> mmap = new HashMap<String, String>();for (String key : mmap.keySet()) {mmap.get(key);} 

这种方法主要是利用HashMap中存放key集合的keySet遍历出key,再获取value。相较于第一种,这个方法的效率会低一些。

第三种:迭代器

Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<String, String> entry = iterator.next();entry.getKey();entry.getValue();}

我们知道迭代器是专门用来遍历单列集合的,它的好处是屏蔽了众多集合的内部实现,对外提供统一的访问方式。在java早期版本中,迭代器的使用非常频繁,而且它可以实现将entry对象整个移除集合。

好了,这就是java面试中HashMap的遍历方式了,喜欢的小伙伴点个关注收藏吧!后续我会持续更新一些面试中高频出现的面试题解答方法,如果有什么疑问的小伙伴可以在评论区留言,我们一起讨论吧!

最后祝各位都能拿到心仪的offer!

相关文章