您的位置:

Java中HashMap的三种遍历方式

在Java编程中,HashMap是一种常用的数据结构,它可以存储键值对,其中键和值都是对象。在实际开发中,经常需要对HashMap进行遍历,以获取存储在其中的数据。本文将介绍HashMap的三种遍历方式。

一、使用keySet()方法遍历HashMap

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("orange", 2);
map.put("banana", 3);

for (String key : map.keySet()) {
    int value = map.get(key);
    System.out.println(key + " : " + value);
}

第一步,在创建HashMap对象时,添加了三个键值对。第二步,利用map.keySet()方法获取HashMap中所有的key。第三步,使用for循环依次获取每个key对应的value值。

该方法的优点是比较简单直观,同时效率也较高。但是缺点是,如果只需要获取HashMap中的value值,每次都要通过get方法查找,效率会比较低。

二、使用entrySet()方法遍历HashMap

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("orange", 2);
map.put("banana", 3);

for (Map.Entry<String, Integer> entry : map.entrySet()) {
    String key = entry.getKey();
    int value = entry.getValue();
    System.out.println(key + " : " + value);
}

第一步,在创建HashMap对象时,添加了三个键值对。第二步,利用map.entrySet()方法获取HashMap中所有的key-value对。第三步,利用for循环依次获取每个键值对的key和value值。

该方法的优点是,可以直接获取HashMap中的key和value值,避免了使用keySet()方法之后再通过get方法查找value值的效率问题。缺点是代码相对于keySet()方法略微繁琐。

三、使用Lambda表达式遍历HashMap

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("orange", 2);
map.put("banana", 3);

map.forEach((k, v) -> System.out.println(k + " : " + v));

利用Java 8中引入的Lambda表达式,可以极大地简化代码量。通过forEach方法遍历HashMap时,Lambda表达式中的k和v分别表示每个键值对的key和value。

该方法的优点是代码简洁,易于理解。缺点是需要Java 8及以上的版本支持。