Map遍历的四种方式
package com.test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* Map遍历
*
* @author hkk
*/
public class MapTest {
public static void main(String[] args) {
methodOne(initMap());
System.out.println("=============================================");
methodTwo(initMap());
System.out.println("=============================================");
methodThree(initMap());
System.out.println("=============================================");
methodFour(initMap());
}
/**
* 初始化map
*
* @return map
*/
private static Map<String, String> initMap() {
Map<String, String> map = new HashMap<>(16);
map.put("1", "one");
map.put("2", "two");
map.put("3", "three");
map.put("4", "four");
map.put("5", "five");
map.put("6", "six");
return map;
}
/**
* 方法一: 最常用最可取的方式,在键值都需要时使用
*
* @param map map
*/
private static void methodOne(Map<String, String> map) {
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
}
}
/**
* 方法二: for-each循环中遍历
*
* @param map map
*/
private static void methodTwo(Map<String, String> map) {
// 遍历map中的键
for (String key : map.keySet()) {
System.out.println("key = " + key);
}
// 遍历map中的值
for (String value : map.values()) {
System.out.println("value = " + value);
}
}
/**
* 方法三: 使用iterator遍历
*
* @param map map
*/
private static void methodThree(Map<String, String> map) {
Iterator<Map.Entry<String, String>> entryIterator = map.entrySet().iterator();
while (entryIterator.hasNext()) {
Map.Entry<String, String> entry = entryIterator.next();
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
}
}
/**
* 方法四: 通过键找值遍历(效率低)
*
* @param map map
*/
private static void methodFour(Map<String, String> map) {
for (String key : map.keySet()) {
System.out.println("key = " + key + ", value = " + map.get(key));
}
}
}