热血拳击动画《第一神拳》续集上贤妗MADHOUSE、MAPPA联手打造,鹰村守引领热血竞技风暴,视频数量丰富!
《第一神拳》是由日本MADHOUSE与MAPPA联合制作出品的电视动画系列...
2024-12-26
我们应该在什么时刻选择什么样的遍历方式呢,必须通过实践的比较才能看到效率,也看了很多文章,大家建议使用entrySet,认为entrySet对于大数据量的查找来说,速度更快,今天我们就通过下面采用不同方法遍历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; 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)keySet利用Iterator遍历
long startTime1 =System.currentTimeMillis();Iterator<String> iter = map.keySet().iterator();while (iter.hasNext()){ key=iter.next(); value=map.get(key);}long endTime1 =System.currentTimeMillis();System.out.println("第一个程序运行时间:"+(endTime1-startTime1)+"ms");2)keySet利用for遍历
long startTime2 =System.currentTimeMillis(); for(String key2:map.keySet()){ value=map.get(key2); }long endTime2 =System.currentTimeMillis();System.out.println("第二个程序运行时间:"+(endTime2-startTime2)+"ms");3)entrySet利用Iterator遍历
long startTime3=System.currentTimeMillis();Iterator<Map.Entry<String,String>> iter3 =map.entrySet().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)entrySet利用for遍历
long startTime4=System.currentTimeMillis();for(Map.Entry<String,String> entry4:map.entrySet()){ key=entry4.getKey(); value=entry4.getValue();}long endTime4 =System.currentTimeMillis();System.out.println("第四个程序运行时间:"+(endTime4-startTime4) +"ms");1)keySet利用Iterator遍历
long startTime1 =System.currentTimeMillis();Iterator<String> iter = map.keySet().iterator();while (iter.hasNext()){ key=iter.next();}long endTime1 =System.currentTimeMillis();System.out.println("第一个程序运行时间:"+(endTime1-startTime1)+"ms");2)keySet利用for遍历
long startTime2 =System.currentTimeMillis();for(String key2:map.keySet()){}long endTime2 =System.currentTimeMillis();System.out.println("第二个程序运行时间:"+(endTime2-startTime2)+"ms");3)entrySet利用Iterator遍历
long startTime3=System.currentTimeMillis();Iterator<Map.Entry<String,String>> iter3 =map.entrySet().iterator();Map.Entry<String,String> entry3;while (iter3.hasNext()){ key = iter3.next().getKey();}long endTime3 =System.currentTimeMillis();System.out.println("第三个程序运行时间:" +(endTime3-startTime3)+"ms");4)entrySet利用for遍历
long startTime4=System.currentTimeMillis();for(Map.Entry<String,String> entry4:map.entrySet()){ key=entry4.getKey();}long endTime4 =System.currentTimeMillis();System.out.println("第四个程序运行时间:"+(endTime4-startTime4) +"ms");1)keySet利用Iterator遍历
long startTime1 =System.currentTimeMillis();Iterator<String> iter = map.keySet().iterator();while (iter.hasNext()){ value=map.get(iter.next());}long endTime1 =System.currentTimeMillis();System.out.println("第一个程序运行时间:"+(endTime1-startTime1)+"ms");2)keySet利用for遍历
long startTime2 =System.currentTimeMillis();for(String key2:map.keySet()){ value=map.get(key2);}long endTime2 =System.currentTimeMillis();System.out.println("第二个程序运行时间:"+(endTime2-startTime2)+"ms");3)entrySet利用Iterator遍历
long startTime3=System.currentTimeMillis();Iterator<Map.Entry<String,String>> iter3 =map.entrySet().iterator();Map.Entry<String,String> entry3;while (iter3.hasNext()){ value=iter3.next().getValue();}long endTime3 =System.currentTimeMillis();System.out.println("第三个程序运行时间:" +(endTime3-startTime3)+"ms");4)entrySet利用for遍历
long startTime4=System.currentTimeMillis();for(Map.Entry<String,String> entry4:map.entrySet()){ 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)当数据量大的时候,采用entrySet遍历key+value的效率要高于keySet
3)当我们只需要取得value值时,采用values来遍历效率更高
以上内容就是为大家推荐的map怎么遍历删除(map集合遍历的三种方式)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:map怎么遍历删除(map集合遍历的三种方式)
本文地址:https://www.xiaoyin02.com/shcs/119027.html
相关文章
《第一神拳》是由日本MADHOUSE与MAPPA联合制作出品的电视动画系列...
2024-12-26
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)