迭代 HashMap 的 Java 程序

要理解此示例,您应该具备以下 Java 编程的知识:

在 Java HashMap 中,我们可以遍历它的键/值映射。

示例 1:使用 forEach 循环遍历 HashMap

import java.util.HashMap;
import java.util.Map.Entry;

public class Main {
  public static void main(String[] args) {

    // Creating a HashMap
    HashMap<String, String> languages = new HashMap<>();
    languages.put("Java", "Enterprise");
    languages.put("Python", "ML/AI");
    languages.put("JavaScript", "Frontend");
    System.out.println("HashMap: " + languages);

    // iterating through key/value mappings
    System.out.print("Entries: ");
    for(Entry<String, String> entry: languages.entrySet()) {
      System.out.print(entry);
      System.out.print(", ");
    }

    // iterating through keys
    System.out.print("\nKeys: ");
    for(String key: languages.keySet()) {
      System.out.print(key);
      System.out.print(", ");
    }

    // iterating through values
    System.out.print("\nValues: ");
    for(String value: languages.values()) {
      System.out.print(value);
      System.out.print(", ");
    }
  }
}

输出

HashMap: {Java=Enterprise, JavaScript=Frontend, Python=ML/AI}
Entries: Java=Enterprise, JavaScript=Frontend, Python=ML/AI,
Keys: Java, JavaScript, Python,
Values: Enterprise, Frontend, ML/AI,

在上面的例子中,我们创建了一个名为 languagesHashMap. 在这里,我们使用 for-each 循环遍历哈希图的元素。

请注意,我们独立地遍历keysvalueskey/value映射。

  • entrySet() - 返回所有条目的集合视图
  • keySet() - 返回所有键的集合视图
  • values() - 返回所有值的集合视图

注意:我们已经使用了这个 Map.Entry 类。它是返回 Map 视图的嵌套类。

示例 2:使用 iterator() 遍历 HashMap

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;

public class Main {
  public static void main(String[] args) {
    // create a HashMap
    HashMap<String, String> languages = new HashMap<>();
    languages.put("Java", "Enterprise");
    languages.put("Python", "ML/AI");
    languages.put("JavaScript", "Frontend");
    System.out.println("HashMap: " + languages);

    // create an object of Iterator
    Iterator<Entry<String, String>> iterate1 = languages.entrySet().iterator();

    // iterate through key/value mappings
    System.out.print("Entries: ");
    while(iterate1.hasNext()) {
      System.out.print(iterate1.next());
      System.out.print(", ");
    }

    // iterate through keys
    Iterator<String> iterate2 = languages.keySet().iterator();
    System.out.print("\nKeys: ");
    while(iterate2.hasNext()) {
      System.out.print(iterate2.next());
      System.out.print(", ");
    }

    // iterate through values
    Iterator<String> iterate3 = languages.values().iterator();
    System.out.print("\nValues: ");
    while(iterate3.hasNext()) {
      System.out.print(iterate3.next());
      System.out.print(", ");
    }
  }
}

输出

HashMap: {Java=Enterprise, JavaScript=Frontend, Python=ML/AI}
Entries: Java=Enterprise, JavaScript=Frontend, Python=ML/AI,
Keys: Java, JavaScript, Python,
Values: Enterprise, Frontend, ML/AI,

在上面的例子中,我们遍历哈希映射的键、值和键/值映射。我们已经使用该 iterator() 方法迭代 HashMap 。这里,

  • hasNext() - 如果哈希图中有下一个元素,则返回 true
  • next() - 返回哈希图的下一个元素

注意:我们也可以使用 HashMap forEach() 方法来迭代 hashmap。