如何在 Java 中迭代 HashMap?
原文:https://www . geesforgeks . org/how-iterate-hashmap-in-Java/
HashMap 是 Java 集合的一部分,通过将数据存储在(Key,Value)对中,通过另一种类型的索引来访问它们,从而提供 Java Map 接口的基本实现。一个对象被列为另一个对象(值)的键(索引)。如果您尝试插入重复的键,它将替换相应键的元素。为了使用这个类及其方法,需要导入Java . util . hashmap包或其超类。
有许多方法可以迭代 HashMap,下面列出了其中的 5 种:
- 使用迭代器迭代哈希表 EntrySet 。
- 使用迭代器遍历 HashMap 键集。
- 对于每个循环,使用迭代哈希表。
- 使用 Lambda 表达式迭代 HashMap。
- 使用流应用编程接口在哈希表中循环。
方法 1:使用 for 循环遍历 HashMap。通过 for 循环迭代 HashMap,使用 getValue() 和T5】getKey()函数。
实现:在下面给出的代码中, entrySet() 用于返回映射元素的集合视图。根据下面给出的代码:
- set.getValue()从集合中获取值。
- set.getKey()从集合中获取密钥。
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to Iterate over HashMap
// Importing Map and HashMap classes
// from package names java.util
import java.util.HashMap;
import java.util.Map;
// Class for iterating HashMap using for loop
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating a HashMap
Map<String, String> foodTable
= new HashMap<String, String>();
// Inserting elements to the adobe HashMap
// Elements- Key value pairs using put() method
foodTable.put("A", "Angular");
foodTable.put("J", "Java");
foodTable.put("P", "Python");
foodTable.put("H", "Hibernate");
// Iterating HashMap through for loop
for (Map.Entry<String, String> set :
foodTable.entrySet()) {
// Printing all elements of a Map
System.out.println(set.getKey() + " = "
+ set.getValue());
}
}
}
Output
P = Python
A = Angular
H = Hibernate
J = Java
方法 2:使用 forEach 迭代 HashMap。在第二种方法中, forEach 函数迭代键值对。
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to Iterate over HashMap
// Iterating HashMap using forEach
// Importing Map and HashMap classes
// from package names java.util
import java.util.HashMap;
import java.util.Map;
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating hash map
Map<Character, String> charType
= new HashMap<Character, String>();
// Inserting data in the hash map.
charType.put('J', "Java");
charType.put('H', "Hibernate");
charType.put('P', "Python");
charType.put('A', "Angular");
// Iterating HashMap through forEach and
// Printing all. elements in a Map
charType.forEach(
(key, value)
-> System.out.println(key + " = " + value));
}
}
Output
P = Python
A = Angular
H = Hibernate
J = Java
方法 3:使用迭代器遍历 HashMap。在这个方法中,迭代器被用来迭代 HashMap 中的每个映射对,如下面的 java 程序所示。
示例:
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to Iterate over HashMap
// Using Iterator
// Importing classes from java.util package
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class GFG {
// Main driver method
public static void main(String[] arguments)
{
// Creating Hash map
Map<Integer, String> intType
= new HashMap<Integer, String>();
// Inserting data(Key-value pairs) in hashmap
intType.put(1, "First");
intType.put(2, "Second");
intType.put(3, "Third");
intType.put(4, "Fourth");
// Iterator
Iterator<Entry<Integer, String> > new_Iterator
= intType.entrySet().iterator();
// Iterating every set of entry in the HashMap
while (new_Iterator.hasNext()) {
Map.Entry<Integer, String> new_Map
= (Map.Entry<Integer, String>)
new_Iterator.next();
// Displaying HashMap
System.out.println(new_Map.getKey() + " = "
+ new_Map.getValue());
}
}
}
Output
1 = First
2 = Second
3 = Third
4 = Fourth
方法 4:使用 Lambda 表达式迭代 HashMap】
lambda 表达式是一小段接受参数并返回值的代码。Lambda 表达式类似于方法,但是它们不需要名称,并且可以直接在方法的主体中实现。最简单的 lambda 表达式包含一个参数和一个表达式:
parameter -> expression
示例:
Java 语言(一种计算机语言,尤用于创建网站)
// Iterating HashMap using Lambda Expressions- forEach()
// Importing Map and HashMap classes
// from java.util package
import java.util.HashMap;
import java.util.Map;
// Class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating hash map
Map<Character, String> charType
= new HashMap<Character, String>();
// Inserting elements(key-value pairs)
// in the hash map ( Custom inputs)
charType.put('A', "Apple");
charType.put('B', "Basketball");
charType.put('C', "Cat");
charType.put('D', "Dog");
// Iterating through forEach and
// printing the elements
charType.forEach(
(key, value)
-> System.out.println(key + " = " + value));
}
}
Output
A = Apple
B = Basketball
C = Cat
D = Dog
方法 5: 使用流应用编程接口在哈希表中循环
下面的例子在流应用编程接口的帮助下迭代哈希表。
流应用编程接口用于处理对象集合。
流不会改变原始的数据结构,它们只根据流水线方法提供结果
步骤:
- 首先调用 entrySet()。stream() 返回 stream 对象的方法。
- 接下来 forEach 方法,迭代 entrySet()中的输入对象。请参见下面的代码。
示例:
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to Iterate over HashMap
// Loop through a HashMap using Stream API
// Importing classes from
// package named 'java.util'
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
// HashMap class
public class GFG {
// Main driver method
public static void main(String[] arguments)
{
// Creating hash map
Map<Integer, String> intType
= new HashMap<Integer, String>();
// Inserting data(key-value pairs) in HashMap
// Custom inputs
intType.put(1, "First");
intType.put(2, "Second");
intType.put(3, "Third");
intType.put(4, "Fourth");
// Iterating every set of entry in the HashMap, and
// printing all elements of it
intType.entrySet().stream().forEach(
input
-> System.out.println(input.getKey() + " : "
+ input.getValue()));
}
}
Output
1 : First
2 : Second
3 : Third
4 : Fourth
版权属于:月萌API www.moonapi.com,转载请注明出处