转载请出自出处:
http://eksliang.iteye.com/blog/2059996
package com.ickes;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* 遍历Map的四种方式
* @author Ickes
*
*/
public class MapTest {
public static void main(String[] args) {
Map<String,String> map=new HashMap<String, String>();
map.put("a001","value1");
map.put("a002","value2");
map.put("a003","value3");
//第一种:普遍使用,二次取值
for (String key : map.keySet()) {
System.out.println("key:"+key+"---value:"+map.get(key));
}
/*
* 记住map的底层采用entry对象数组实现,直接取她的entry容器
* 第二种:推荐使用,一次性搞定,而且简洁,效率高
*/
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key:"+entry.getKey()+"---value:"+entry.getValue());
}
/*
*第三种使用迭代器,
*这里通过map的entryset得到她的迭代器,
*可以看到这里比上面多了一层,就是把entrySet封装为一个Iterator迭代器
*/
Iterator<Entry<String, String>> it=map.entrySet().iterator();
while (it.hasNext()) {
Entry<String, String> entry=it.next();
System.out.println("key:"+entry.getKey()+"---value:"+entry.getValue());
}
//第四种,这种方式只能获得值,不能获得键
for (String v : map.values()) {
System.out.println("value:" + v);
}
}
}