keySet()与entrySet()

  1. importjava.util.Calendar;
  2. importjava.util.Date;
  3. importjava.util.HashMap;
  4. importjava.util.Iterator;
  5. importjava.util.Map.Entry;
  6. /**
  7. *测试keySet()与entrySet()的迭代时间
  8. *keySet():迭代后只能通过get()取key
  9. *entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口
  10. *最后说明下keySet()的速度比entrySet()慢了很多。看来以后要考虑用entrySet()了
  11. *@authorYL
  12. *@date2009.6.10
  13. */
  14. publicclassHashMapTest
  15. {
  16. publicstaticvoidmain(String[]args)
  17. {
  18. HashMap<String,String>kmap=newHashMap<String,String>();
  19. HashMap<String,String>emap=newHashMap<String,String>();
  20. //装数据
  21. for(inti=0;i<1000;i++)
  22. {
  23. kmap.put(""+i,"YL");
  24. }
  25. for(inti=0;i<1000;i++)
  26. {
  27. emap.put(""+i,"ZT");
  28. }
  29. longstimes=System.currentTimeMillis();
  30. longctimes=Calendar.getInstance().getTimeInMillis();
  31. longdtimes=newDate().getTime();
  32. //初始时间这里我用了三种取值方式最后发现System.currentTimeMillis();是最直接的取值方法
  33. System.out.println(stimes+""+ctimes+""+dtimes);
  34. Iterator<String>ktor=kmap.keySet().iterator();
  35. while(ktor.hasNext())
  36. {
  37. System.out.println(ktor.next());
  38. }
  39. longstimes1=System.currentTimeMillis();
  40. longctimes1=Calendar.getInstance().getTimeInMillis();
  41. longdtimes1=newDate().getTime();
  42. //结束世界并且也是entrySet的开始时间
  43. System.out.println((stimes1-stimes)+""+(ctimes1-ctimes)+""+(dtimes1-dtimes));
  44. System.out.println(stimes1+""+ctimes1+""+dtimes1);
  45. Iterator<Entry<String,String>>itor=emap.entrySet().iterator();
  46. while(itor.hasNext())
  47. {
  48. Entry<String,String>e=itor.next();
  49. //System.out.println(e.getKey());
  50. System.out.println(e.getValue());
  51. }
  52. longstimes2=System.currentTimeMillis();
  53. longctimes2=Calendar.getInstance().getTimeInMillis();
  54. longdtimes2=newDate().getTime();
  55. System.out.println(stimes2+""+ctimes2+""+dtimes2);
  56. System.out.println((stimes2-stimes1)+""+(ctimes2-ctimes1)+""+(dtimes2-dtimes1));
  57. }
  58. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值