hashMap不同数据量性能比较

public class mapTest {  

public static void main(String[] args){  

HashMap map =new HashMap();  

for (int i=0; i<40000; i++){  

map.put(i,"第"+i+"个");  

        }  

//循环第一种  

long t1 = System.nanoTime();  

        Object key[] = map.keySet().toArray();  

for (int i=0; i

            map.get(key[i]);  

        }  

long t2 = System.nanoTime();   

//循环第二种  

for(Entry entry:map.entrySet()){  

            entry.getValue();  

        }  

long t3 = System.nanoTime();  

//循环第三种  

        Iterator it = map.keySet().iterator();  

while(it.hasNext()){  

            Integer ii = (Integer)it.next();   

            map.get(ii);  

        }  

long t4 = System.nanoTime();  

//循环第四种  

for (Integer kk :map.keySet()){  

            map.get(kk);  

        }  

long t5 = System.nanoTime();  

System.out.println("第一种方法耗时:" + (t2-t1)/1000 + "微秒");  

System.out.println("第二种方法耗时:" + (t3-t2)/1000 + "微秒");  

System.out.println("第三种方法耗时:" + (t4-t3)/1000 + "微秒");  

System.out.println("第四种方法耗时:" + (t5-t4)/1000 + "微秒");  

    }  

}  

输出结果:

第一种方法耗时:101918微秒

第二种方法耗时:49042微秒

第三种方法耗时:82706微秒

第四种方法耗时:75093微秒

把上述的1000000改成10,输出结果如下:

第一种方法耗时:806微秒

第二种方法耗时:453微秒

第三种方法耗时:19微秒

第四种方法耗时:17微秒

改为100:

第一种方法耗时:909微秒

第二种方法耗时:631微秒

第三种方法耗时:154微秒

第四种方法耗时:141微秒

经测试,第三种方法和第四种方法耗时基本差不多,当数据上万时,第二种方法的效率更高。

你可能感兴趣的:(hashMap不同数据量性能比较)