java hashmap遍历是有序的么(java面试不同于ArrayList和数组)
java hashmap遍历是有序的么(java面试不同于ArrayList和数组)Map<String String> mmap = new HashMap<String String>(); for (String key : mmap.keySet()) { mmap.get(key); } 这种方法主要是利用HashMap中存放key集合的keySet遍历出key,再获取value。相较于第一种,这个方法的效率会低一些。第三种:使用for-each迭代keySet,再通过get()取出对应key的valueMap<String String> mmap = new HashMap<String String>(); for (Entry<String String> tempEntry : mmap.entrySet()) { tempEntry.getKey(); tempEntry.
上一期我们已经解释完HashMap的原理,在了解原理的基础上使用HashMap会更加简单明了。
面试官:请说一下怎么遍历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!