CDA数据分析师:数据科学、人工智能从业者的在线大学。
数据科学(Python/R/Julia)数据分析、机器学习、深度学习 Q群:874447702
今天我们来说一下比较基础的一个面试问题 map 、list、set的遍历问题。今天我们重点了解下map的遍历问题也是面试中最常遇到的问题:
Map的遍历
Map map=new HashMap;
方法一(同时遍历键和值):

在for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。
注意:for-each循环在Java 5中才被引入,所以该方法只能应用于java 5或更高的版本中。 并且假如遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查空引用。
方法二(只遍历键或值):
//只遍历map中的键

//遍历map中的值

如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。
该方法比方法一种entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
方法三(同时遍历键和值,效率低)

使用该方法虽然写起来更加简洁但是却有严重的效率问题,及其不推荐使用,因为从键取值是耗时的操作。
所以进行map遍历操作时假如是java5以上时需要键和值都需要遍历的情况下选用方法一,只需要键或值一个遍历时优先使用方法二。