public class MapTraverse {
/**
* @param args
*/
public static void main(String[] args){
HashMap map = new HashMap();
map.put("1", "张三");
map.put("2", "李四");
map.put("3", "王五");
//方法一(将所有key-value一次性获得出来放到entrySet中)
Iterator it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Map.Entry)it.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.print("key=="+key.toString());
System.out.println("value=="+value.toString());
}
System.out.println("-----------------------------");
//方法二(将key获得出来放到keySet中,然后取value)
Iterator it2 = map.keySet().iterator();
while(it2.hasNext()){
String key = (String)it2.next();
String value = (String)map.get(key);
System.out.println("key=="+key.toString()+"value=="+value.toString());
}
System.out.println("-----------------------------");
}
}
第一种方式,一次性读取,效率较高,很多公司明确只能使用第一种;
第二种方式,实际上进行了两遍遍历,同时遍历key和原map。