有多种方法可以在Java中迭代Map。如下所示 -
- KeySet和Iterator
- EntrySet和for-each循环
- Stream(在Java8中引入)
在本教程中,我们将使用Iterator来迭代Map,
文件:IterateMapExample.java -
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class IterateMapExample {
public static void main(String[] args) {
Map daysMap=new HashMap<>();
daysMap.put("1" "MON");
daysMap.put("2" "TUE");
daysMap.put("3" "WED");
daysMap.put("4" "THU");
daysMap.put("5" "FRI");
daysMap.put("6" "SAT");
daysMap.put("7" "SUN");
/* Iterating map using Set Collection and Iterator*/
System.out.print("Using Set and Iterator : ");
Set keysSet=daysMap.keySet();
for (Iterator iterator=keysSet.iterator();iterator.hasNext();) {
String key=iterator.next();
System.out.print("("+key+""+daysMap.get(key)+") ");
}
/* Iterating map using EntrySet and For Each loop*/
System.out.print("\nUsing EntrySet and For Each loop : ");
Set> entries=daysMap.entrySet();
for (Entry entry : entries) {
System.out.print("("+entry.getKey()+""+entry.getKey()+") ");
}
/* Iterating map using Stream*/
System.out.print("\nUsing Stream : ");
daysMap.forEach((keyvalue)->System.out.print("("+key+""+value+") "));
}
}
执行上面示例代码,得到以下结果 -
Using Set and Iterator : (1MON) (2TUE) (3WED) (4THU) (5FRI) (6SAT) (7SUN)
Using EntrySet and For Each loop : (11) (22) (33) (44) (55) (66) (77)
Using Stream : (1MON) (2TUE) (3WED) (4THU) (5FRI) (6SAT) (7SUN)