首页 > 作文

map怎么遍历删除(map集合遍历的三种方式)

更新时间:2023-04-05 14:44:07 阅读: 评论:0

1、由来

我们应该在什么时刻选择什么样的遍历方式呢,必须通过实践的比较才能看到效率,也看了很多文学心理学章,大家建议使用entryt,认为entryt对于大数据量的查找来说,速度更快,今天我们就通过下面采用不同方法遍历key+value,key,value不同情景下的差异。

2、准备测试数据:

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

3、场景测试

3.1遍历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");

3.2遍历key

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

3.3遍历value

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

4、时间对比

4.1遍历key+value

4.2遍历key

4.3遍历value

5、总无可置疑造句结

从上面的时间比较来看:

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 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图