HashMap的遍历最优方式建议使用entrySet()的方式,因为在数据量比较大的时候,它的效率更高。

话不多说,请看下面的源代码

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");

}

执行上面的代码后,会出现下面的结果:

key79=790

key78=780

key38=380

key39=390

key34=340

key35=350

key36=360
·
·
·
·
·
·

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

·
·
·
·
·
·
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的遍历的方式效率更高,尤其是数据量比较大的时候,效果越明显。

同步更新:HashMap的遍历最优方式