源码
package com.zhaiky;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
Map<String,String> map=new HashMap<String,String>();
for(int i=0;i<50000;i++){
map.put("key"+i, "value"+i);
}
String msg="";
//通过Map.entrySet遍历key和value,最常见,效率最高
long starttime=System.currentTimeMillis();
for (Map.Entry<String,String> entry : map.entrySet()) {
msg="Key = " + entry.getKey() + ", Value = " + entry.getValue();
}
long diffe=System.currentTimeMillis()-starttime;
System.out.println("-----------------------------------耗时:"+diffe+"毫秒");
System.out.println(msg);
System.out.println();
//通过Map.entrySet使用迭代器iterator遍历key和value
Iterator<Map.Entry<String,String>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<String,String> entry = entries.next();
msg="Key = " + entry.getKey() + ", Value = " + entry.getValue();
}
diffe=System.currentTimeMillis()-starttime;
System.out.println("-----------------------------------耗时:"+diffe+"毫秒");
System.out.println(msg);
System.out.println();
//通过Map.values()遍历所有的value但是不能遍历key
for(String value :map.values()){
msg="Value = " +value;
}
diffe=System.currentTimeMillis()-starttime;
System.out.println("-----------------------------------耗时:"+diffe+"毫秒");
System.out.println(msg);
System.out.println();
//先得到key的值 然后通过key值得到value值
Set<String> set=map.keySet();
for(String key:set){
msg="Key = " + key + ", Value = " + map.get(key);
}
diffe=System.currentTimeMillis()-starttime;
System.out.println("-----------------------------------耗时:"+diffe+"毫秒");
System.out.println(msg);
System.out.println();
}
}
测试结果
-----------------------------------耗时:31毫秒
Key = key44663, Value = value44663
-----------------------------------耗时:53毫秒
Key = key44663, Value = value44663
-----------------------------------耗时:68毫秒
Value = value44663
-----------------------------------耗时:93毫秒
Key = key44663, Value = value44663