public static void testEfficiency(){
HashMap hmap = new HashMap();
for(int i=0;i<100;i++){
hmap.put("key"+i, i*10);
}
System.out.println("------遍历方式1:使用entrySet----遍历key和value----------------------");
long start1 = System.currentTimeMillis();
for (Iterator it = hmap.entrySet().iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry) it.next();
System.out.println(entry.getKey() + "=" + entry.getValue());
}
long end1 = System.currentTimeMillis();
System.out.println("方式一,耗时:"+(end1-start1) +"ms");
System.out.println("------遍历方式2:使用keySet----遍历key和value----------------------");
long start2 = System.currentTimeMillis();
for (Iterator it = hmap.keySet().iterator(); it.hasNext();) {
String key= (String) it.next();
System.out.println(key + "=" + hmap.get(key));
}
long end2 = System.currentTimeMillis();
System.out.println("方式二,耗时:"+(end2-start2) +"ms");
}
执行上面的代码后,会出现下面的结果:
------遍历方式1:使用entrySet----遍历key和value---------------------- key79=790 key78=780 key38=380 key39=390 key34=340 key35=350 key36=360 key37=370 key42=420 key41=410 key44=440 key80=800 key43=430 key40=400 key85=850 key86=860 key87=870 key88=880 key81=810 key82=820 key83=830 key84=840 key4=40 key3=30 key6=60 key5=50 key0=0 key2=20 key89=890 key1=10 key49=490 key10=100 key11=110 key8=80 key47=470 key48=480 key7=70 key45=450 key9=90 key46=460 key90=900 key55=550 key91=910 key54=540 key53=530 key52=520 key51=510 key50=500 key98=980 key99=990 key96=960 key97=970 key94=940 key95=950 key92=920 key93=930 key56=560 key57=570 key58=580 key59=590 key21=210 key22=220 key20=200 key60=600 key15=150 key14=140 key62=620 key13=130 key61=610 key12=120 key64=640 key19=190 key63=630 key18=180 key66=660 key17=170 key65=650 key16=160 key69=690 key67=670 key68=680 key30=300 key31=310 key32=320 key33=330 key73=730 key24=240 key72=720 key23=230 key71=710 key26=260 key70=700 key25=250 key77=770 key28=280 key76=760 key27=270 key75=750 key74=740 key29=290 方式一,耗时:1ms ------遍历方式2:使用keySet----遍历key和value---------------------- key79=790 key78=780 key38=380 key39=390 key34=340 key35=350 key36=360 key37=370 key42=420 key41=410 key44=440 key80=800 key43=430 key40=400 key85=850 key86=860 key87=870 key88=880 key81=810 key82=820 key83=830 key84=840 key4=40 key3=30 key6=60 key5=50 key0=0 key2=20 key89=890 key1=10 key49=490 key10=100 key11=110 key8=80 key47=470 key48=480 key7=70 key45=450 key9=90 key46=460 key90=900 key55=550 key91=910 key54=540 key53=530 key52=520 key51=510 key50=500 key98=980 key99=990 key96=960 key97=970 key94=940 key95=950 key92=920 key93=930 key56=560 key57=570 key58=580 key59=590 key21=210 key22=220 key20=200 key60=600 key15=150 key14=140 key62=620 key13=130 key61=610 key12=120 key64=640 key19=190 key63=630 key18=180 key66=660 key17=170 key65=650 key16=160 key69=690 key67=670 key68=680 key30=300 key31=310 key32=320 key33=330 key73=730 key24=240 key72=720 key23=230 key71=710 key26=260 key70=700 key25=250 key77=770 key28=280 key76=760 key27=270 key75=750 key74=740 key29=290 方式二,耗时:2ms |
所以,从上面的简单的比较,可以得出当我们需要遍历HashMap的时候,使用EntrySet的遍历的方式效率更高,尤其是数据量比较大的时候,效果越明显。