一、前言

这篇文章主要介绍了JAVA8独有的map遍历方式(非常好用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

二、遍历Map

2.1 初始化Map

1
2
3
4
5
6
7
8
9
    public static Map<Integer, String> initMap(){
Map<Integer, String> map = new HashMap<>();
map.put(1, "张三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "王五");
map.put(4, "王五");
return map;
}

2.2 方式一

通过Map.keySet遍历key和value

1
2
3
4
5
6
    public static void Traversal1(Map<Integer, String> map){
for (Integer key : map.keySet()) {
String s = map.get(key);
System.out.println(key + ": " + s);
}
}

2.3 方式二

通过Map.entrySet遍历key和value

1
2
3
4
5
    public static void Traversal2(Map<Integer, String> map){
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}

2.4 方式三

通过Map.entrySet使用iterator遍历key和value

1
2
3
4
5
6
7
    public static void Traversal3(Map<Integer, String> map){
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}

2.5 方式四

通过Map.values()遍历所有的value,但不能遍历key

1
2
3
4
5
    public static void Traversal4(Map<Integer, String> map){
for (String value : map.values()) {
System.out.println(value);
}
}

2.6 方式五

通过k,v遍历,Java8独有的

1
2
3
    public static void Traversal5(Map<Integer, String> map){
map.forEach((k, v) -> System.out.println(k + ": " + v));
}

三、测试

3.1 编写测试方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public static void main(String[] args) {
Map<Integer, String> map = initMap();
System.out.println("map的大小:" + map.size());
System.out.println("方式一:通过Map.keySet遍历key和value:");
Traversal1(map);
System.out.println("方式二:通过Map.entrySet遍历key和value:");
System.out.println("推荐,尤其是容量大时");
Traversal2(map);
System.out.println("方式三:通过Map.entrySet使用iterator遍历key和value:");
Traversal3(map);
System.out.println("方式四:通过Map.values()遍历所有的value,但不能遍历key");
Traversal4(map);
System.out.println("方式五:通过k,v遍历,Java8独有的");
Traversal5(map);
}

3.1 测试输出

map的大小:4
方式一:通过Map.keySet遍历key和value:
1: 张三
2: 李四
3: 王五
4: 王五
方式二:通过Map.entrySet遍历key和value:
推荐,尤其是容量大时
1: 张三
2: 李四
3: 王五
4: 王五
方式三:通过Map.entrySet使用iterator遍历key和value:
1: 张三
2: 李四
3: 王五
4: 王五
方式四:通过Map.values()遍历所有的value,但不能遍历key
张三
李四
王五
王五
方式五:通过k,v遍历,Java8独有的
1: 张三
2: 李四
3: 王五
4: 王五