迭代 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,
在上面的例子中,我们创建了一个名为 languages
的 HashMap
. 在这里,我们使用 for-each
循环遍历哈希图的元素。
请注意,我们独立地遍历keys、values和key/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。