我们应该在什么时刻选择什么样的遍历方式呢,必须通过实践的比较才能看到效率,也看了很多文学心理学章,大家建议使用entryt,认为entryt对于大数据量的查找来说,速度更快,今天我们就通过下面采用不同方法遍历key+value,key,value不同情景下的差异。
hashmap1:大小为1000000,key和value的值均为string,key的值为1、2、3………1000000;
map<string,string> map =new hashmap<string,string>(); string key,value; for(int i=1;i<=num;i++){ key = ""+i; 军训总结300字 value="value"+i; map.put(key,value); }
hashmap2:大小为1000000,key和value的值为string,key的值为50、100、150……..50000000;
map<string,string> map = new hashmap<string,string>(); string key,value; for(int i=1;i<=num;i++){ key=""+(i*50); value="value"+key; map.put(key,value);}
1)keyt利用iterator遍历
long starttime1 =system.currenttimemillis();iterator<string> iter = map.keyt().iterator();while (iter.hasnext()){ key=iter.next(); value=map.get(key);}long endtime1 =system.currenttimemillis();system.out.println("第一个程序运行时间:"+(endtime1-starttime1)+"ms");
2)keyt利用for遍历
long starttime2 =system.currenttimemillis(); for(string key2:map.keyt()){ value=map.get(key2); }long endtime2 =system.currenttimemillis();system.out.println("第二个程序运行时间:"+(endtime2-starttime2)+"ms");
3)entryt利用iterator遍历
long starttime3=system.currenttimemillis();iterator<map.entry<string,string>> it怎么查会考成绩er3 =map.entryt().iterator();map.entry<string,string> entry3;while (iter3.hasnext()){ entry3 = iter3.next(); key = entry3.getkey(); value=entry3.getvalue();}long endtime3 =system.currenttimemillis();system.out.println("第三个程序运行时间:" +(endtime3-starttime3)+"ms");
4)entryt利用for遍历
long starttime4=system.currenttimemillis();for(map.entry<string,string> entry4:map.entryt()){ key=entry4.getkey(); value=entry4.getvalue();}long endtime4 =system.currenttimemillis();system.out.println("第四个程序运行时间:"+(endtime4-starttime4) +"ms");
1)keyt利用iterator遍历
long starttime1 =system.currenttimemillis();iterator<string> iter = map.keyt().iterator();while (iter.hasnext()){ key=iter.next();}long endtime1 =system.currenttimemillis();system.out.println("第一个程序运行时间:"+(endtime1-starttime1)+"ms");
2)keyt利用for遍历
long starttime2 =system.currenttimemillis();for(string key2:map.keyt()){}long endtime2 =system.currenttimemillis();system.out.println("第二个程序运行时间:"+(endtime2-starttime2)+"ms");
3)entryt利用iterator遍历
long starttime3=system.currenttimemillis();iterator<map.entry<string,string>> iter3 =map.entryt().iterator();map.entry<string,string> entry3;while (iter3.hasnext()){ key = iter3.next().getkey();}long endtime3 =system.currenttimemillis();system.out.println("第三个程序运行时间:" +(endtime3-starttime3)+"ms");
4)entryt利用for遍历
long starttime4=system.currenttimemillis();for(map.entry<string,string> entry4:map.entryt()){ key=entry4.getkey();}long endtime4 =system.currenttimemillis();system.out.println("第四2015年浙江高考作文个程序运行时间:"+(endtime4-starttime4) +"ms");
1)keyt利用iterator遍历
long starttime1 =system.currenttimemillis();iterator<string> iter = map.keyt().iterator();while (iter.hasnext()){ value=map.get(iter.next());}long endtime1 =system.currenttimemillis();system.out.println("第一个程序运行时间:"+(endtime1-starttime1)+"ms");
2)keyt利用for遍历
long starttime2 =system.currenttimemillis();for(string key2:map.keyt()){ value=map.get(key2);}long endtime2 =system.currenttimemillis();system.out.println("第二个程序运行时间:"+(endtime2-starttime2)+"ms");
3)entryt利用iterator遍历
long starttime3=system.currenttimemillis();iterator<map.entry<string,string>> iter3 =map.entryt().iterator();map.entry<string,string> entry3;while (iter3.hasnext()){ value=iter3.next().getvalue();}long endtime3 =system.currenttimemillis();system.out.println("第三个程序运行时间:" +(endtime3-starttime3)+"ms");
4)entryt利用for遍历
long starttime4=system.currenttimemillis();for(map.entry<string,string> entry4:map.entryt()){ value=entry4.getvalue();}long endtime4 =system.currenttimemillis();system.out.println("第四个程序运行时间:"+(endtime4-starttime4) +"ms");
5)values利用iterator遍历
long starttime5=system.currenttimemillis();iterator<string> iter5=map.values().iterator();while (iter5.hasnext()){ value=iter5.next();}long endtime5 =system.currenttimemillis();system.out.println("第五个程序运行时间:"+(endtime5-starttime5) +"ms");
6)values利用for遍历
long starttime6=system.currenttimemillis();for(string value6:map.values()){}long endtime6 =system.currenttimemillis();system.out.println("第六个程序运行时间:"+(endtime6-starttime6) +"ms");
从上面的时间比较来看:
1)map的key采用简单形式和复杂形式时,查找的效率是不同的,简单的key值效率更高
2)当数据量大的时候,采用entryt遍历key+value的效率要高于keyt
3)当我们只需要取得value值时,采用values来遍历效率更高
本文发布于:2023-04-05 14:44:06,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/affba181d89c3610a499766cafa16566.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:map怎么遍历删除(map集合遍历的三种方式).doc
本文 PDF 下载地址:map怎么遍历删除(map集合遍历的三种方式).pdf
留言与评论(共有 0 条评论) |