HashMap 遍历从大的方向来说,可分为以下 4 类
Iterator 方式遍历ForEach 方式遍历Lambda 表达式遍历Streams API 遍历但每种类型下又有不同的实现方式,因此具体的遍历方式又可以分为以下 6 种:
Iterator EntrySet 的方式进行遍历Iterator KeySet 的方式进行遍历For Each EntrySet 的方式进行遍历For Each KeySet 的方式进行遍历Lambda 表达式的方式进行遍历Streams API 的方式进行遍历接下来我们来看每种遍历方式的具体实现代码
HashMap 的遍历方式EntrySetpublic class HashMapOneTest {
public static void main(String[] args) {
Map<Integer, String> hashMap = new HashMap<>();
hashMap.put(1, "Java");
hashMap.put(2, "JDK");
hashMap.put(3, "Spring Framework");
hashMap.put(4, "MyBatis framework");
hashMap.put(5, "Java中文社群");
Iterator<Map.Entry<Integer, String>> iterator = hashMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println("Key的值为:" + entry.getKey());
System.out.println("value的值为:" + entry.getValue());
}
}
}
结果如下

KeySetpublic class HashMapTwoTest {
public static void main(String[] args) {
Map<Integer, String> hashMap = new HashMap<>();
hashMap.put(1, "Java");
hashMap.put(2, "JDK");
hashMap.put(3, "Spring Framework");
hashMap.put(4, "MyBatis framework");
hashMap.put(5, "Java中文社群");
Iterator<Integer> iterator = hashMap.keySet().iterator();
while (iterator.hasNext()) {
Integer key = iterator.next();
System.out.println("Key的值为:"+ key);
System.out.println("value的值为:"+ hashMap.get(key));
}
}
}
结果如下

ForEach EntrySetpublic class HashMapThreeTest {
public static void main(String[] args) {
Map<Integer, String> hashMap = new HashMap<>();
hashMap.put(1, "Java")