Zcopy.site

Java Map迭代或循环的方法

有多种方法可以在Java中迭代Map。如下所示 -

  • KeySet和Iterator
  • EntrySet和for-each循环
  • Stream(在Java8中引入)

在本文中,我们将使用Iterator来迭代Map

文件:IterateMapExample.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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<String, String> 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<String> keysSet=daysMap.keySet();
for (Iterator<String> 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<Entry<String, String>> entries=daysMap.entrySet();
for (Entry<String, String> entry : entries) {
System.out.print("("+entry.getKey()+","+entry.getKey()+") ");
}

/* Iterating map using Stream*/
System.out.print("\nUsing Stream : ");
daysMap.forEach((key,value)->System.out.print("("+key+","+value+") "));
}
}

执行上面示例代码,得到以下结果 -

1
2
3
Using Set and Iterator : (1,MON) (2,TUE) (3,WED) (4,THU) (5,FRI) (6,SAT) (7,SUN)
Using EntrySet and For Each loop : (1,1) (2,2) (3,3) (4,4) (5,5) (6,6) (7,7)
Using Stream : (1,MON) (2,TUE) (3,WED) (4,THU) (5,FRI) (6,SAT) (7,SUN)