文章插图
1、由来我们应该在什么时刻选择什么样的遍历方式呢,必须通过实践的比较才能看到效率,也看了很多文章,大家建议使用entrySet,认为entrySet对于大数据量的查找来说,速度更快,今天我们就通过下面采用不同方法遍历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;https://www.520longzhigu.com/diannao/https://www.520longzhigu.com/diannao/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);https://www.520longzhigu.com/diannao/https://www.520longzhigu.com/diannao/value="value"+key;map.put(key,value);}3、场景测试3.1遍历key+value1)keySet利用Iterator遍历
long startTime1 =System.currentTimeMillis();Iterator<String> iter = map.keySet().iterator();while (iter.hasNext()){key=iter.next();value=https://www.520longzhigu.com/diannao/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=https://www.520longzhigu.com/diannao/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=https://www.520longzhigu.com/diannao/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=https://www.520longzhigu.com/diannao/entry4.getValue();}long endTime4 =System.currentTimeMillis();System.out.println("第四个程序运行时间:"+(endTime4-startTime4) +"ms");3.2遍历key1)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");3.3遍历value1)keySet利用Iterator遍历
long startTime1 =System.currentTimeMillis();Iterator<String> iter = map.keySet().iterator();while (iter.hasNext()){value=https://www.520longzhigu.com/diannao/map.get(iter.next());}long endTime1 =System.currentTimeMillis();System.out.println("第一个程序运行时间:"+(endTime1-startTime1)+"ms");2)keySet利用for遍历
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 讲解jquery循环遍历数组 jquery遍历元素的方法
- imap.qq的用户名密码不正确 qq的imap服务器密码怎么填写
- Python列表常用操作小技巧 python中map函数的用法
- 前端解决跨域的三种方法 jquery的each遍历方法是干什么的
- 常考谦敬成语大集合 谦虚的成语
- 愚人节整蛊大集合 2021愚人节怎么整蛊人
- 股票开盘集合竞价规则 竞价交易是什么意思
- 历史上那些描写二月二龙抬头诗句集合
- 蓝宝石的颜色 蓝宝石≠蓝色宝石,不同颜色蓝宝石集合
- 腹肌锻炼:腹肌撕裂者动作大集合