在这篇文章中,我们将看到如何在 Java 中迭代地图。有四种迭代地图的方法
-
使用 keyset() 并为每个循环(Java 5)
-
使用 keyset() 和 java 迭代器
-
使用 EntrySet() 并为每个循环(Java 5)
-
使用 EntrySet() 和 java 迭代器
如果在迭代时删除元素,则第一个和第三个选项将抛出 java.util.ConcurrentModificationException。
如果您了解HashMap 的内部工作,那么迭代 HashMap 可能会更容易
举个例子:
package org.arpit.java2blog;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
public class IterateMapMain {
public static void main(String args[])
{
// HashMap with Country as key and capital as value
HashMap<String,String> countryCapitalMap=new HashMap<String,String>();
countryCapitalMap.put("India","Delhi");
countryCapitalMap.put("Japan","Tokyo");
countryCapitalMap.put("France","Paris");
countryCapitalMap.put("Russia","Moscow");
// Iterating Using keySet() and for each loop
System.out.println("Iterating Using keySet() and for each loop");
for (String countryKey:countryCapitalMap.keySet()) {
System.out.println("Country:"+ countryKey +" and Capital:"+countryCapitalMap.get(countryKey));
}
System.out.println("-----------------------------");
// Iterating Using keySet() and java iterator
System.out.println("Iterating Using keySet() and java Iterator");
Iterator countryKeySetIterator=countryCapitalMap.keySet().iterator();
while(countryKeySetIterator.hasNext()){
String countryKey=countryKeySetIterator.next();
System.out.println("Country:"+ countryKey +" and Capital:"+countryCapitalMap.get(countryKey));
}
System.out.println("-----------------------------");
// Iterating Using entrySet() and for each loop
System.out.println("Iterating Using entrySet() and for each loop");
for (Entry<String,String> entry:countryCapitalMap.entrySet()) {
System.out.println("Country:"+ entry.getKey() +" and Capital:"+entry.getValue());
}
System.out.println("-----------------------------");
// Iterating Using entrySet() and java iterator
System.out.println("Iterating Using entrySet() and and java Iterator");
Iterator<Entry<String,String>> entryIterator=countryCapitalMap.entrySet().iterator();
while(entryIterator.hasNext())
{
Entry<String,String> entry=entryIterator.next();
System.out.println("Country:"+ entry.getKey() +" and Capital:"+entry.getValue());
}
System.out.println("-----------------------------");
}
}
运行它,您将得到以下输出:
Iterating Using keySet() and for each loop
Country:France and Capital:Paris
Country:Russia and Capital:Moscow
Country:Japan and Capital:Tokyo
Country:India and Capital:Delhi
-----------------------------
Iterating Using keySet() and java Iterator
Country:France and Capital:Paris
Country:Russia and Capital:Moscow
Country:Japan and Capital:Tokyo
Country:India and Capital:Delhi
-----------------------------
Iterating Using entrySet() and for each loop
Country:France and Capital:Paris
Country:Russia and Capital:Moscow
Country:Japan and Capital:Tokyo
Country:India and Capital:Delhi
-----------------------------
Iterating Using entrySet() and and java Iterator
Country:France and Capital:Paris
Country:Russia and Capital:Moscow
Country:Japan and Capital:Tokyo
Country:India and Capital:Delhi
-----------------------------
|