一、前言
这篇文章主要介绍了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: 王五