HashMap的遍历最优方式

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

转载于:https://my.oschina.net/u/152474/blog/484210

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值