pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

Java 中傳統(tǒng) for 循環(huán)與 Iterator/foreach 的性能對比

Performance of traditional for loop vs Iterator/foreach in Java(Java 中傳統(tǒng) for 循環(huán)與 Iterator/foreach 的性能對比)
本文介紹了Java 中傳統(tǒng) for 循環(huán)與 Iterator/foreach 的性能對比的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

在遍歷 ArrayList、HashMap 和其他集合時,比較傳統(tǒng)的 for 循環(huán)與 Iterator 是否有任何性能測試結(jié)果?

Is there any performance testing results available in comparing traditional for loop vs Iterator while traversing a ArrayList,HashMap and other collections?

或者只是為什么我應(yīng)該使用迭代器而不是 for 循環(huán),反之亦然?

Or simply why should I use Iterator over for loop or vice versa?

推薦答案

假設(shè)這就是你的意思:

// traditional for loop
for (int i = 0; i < collection.size(); i++) {
  T obj = collection.get(i);
  // snip
}

// using iterator
Iterator<T> iter = collection.iterator();
while (iter.hasNext()) {
  T obj = iter.next();
  // snip
}

// using iterator internally (confirm it yourself using javap -c)
for (T obj : collection) {
   // snip
}

對于沒有隨機訪問的集合(例如 TreeSet、HashMap、LinkedList),迭代器更快.對于數(shù)組和 ArrayList,性能差異應(yīng)該可以忽略不計.

Iterator is faster for collections with no random access (e.g. TreeSet, HashMap, LinkedList). For arrays and ArrayLists, performance differences should be negligible.

我相信微基準測試是萬惡之源,就像早期優(yōu)化一樣.但話又說回來,我認為對這些微不足道的事情的含義有一種感覺是件好事.因此我運行了一個小測試:

I believe that micro-benchmarking is root of pretty much evil, just like early optimization. But then again, I think it's good to have a feeling for the implications of such quite trivial things. Hence I've run a small test:

  • 分別遍歷 LinkedList 和 ArrayList
  • 包含 100,000 個隨機"字符串
  • 總結(jié)它們的長度(只是為了避免編譯器優(yōu)化整個循環(huán))
  • 使用所有 3 種循環(huán)樣式(迭代器、for each、for with counter)

結(jié)果與 LinkedList 的for with counter"不同.其他五個都用了不到 20 毫秒的時間來遍歷整個列表.在 LinkedList 上使用 list.get(i) 100,000 次需要超過 2 分鐘 (!) 才能完成(慢 60,000 倍).哇!:) 因此,最好使用迭代器(顯式或隱式地使用每個迭代器),特別是如果您不知道要處理的列表的類型和大小.

Results are similar for all but "for with counter" with LinkedList. All the other five took less than 20 milliseconds to iterate over the whole list. Using list.get(i) on a LinkedList 100,000 times took more than 2 minutes (!) to complete (60,000 times slower). Wow! :) Hence it's best to use an iterator (explicitly or implicitly using for each), especially if you don't know what type and size of list your dealing with.

這篇關(guān)于Java 中傳統(tǒng) for 循環(huán)與 Iterator/foreach 的性能對比的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Java Remove Duplicates from an Array?(Java從數(shù)組中刪除重復(fù)項?)
How to fix Invocation failed Unexpected Response from Server: Unauthorized in Android studio(如何修復(fù)調(diào)用失敗來自服務(wù)器的意外響應(yīng):在 Android 工作室中未經(jīng)授權(quán))
AES encryption, got extra trash characters in decrypted file(AES 加密,解密文件中有多余的垃圾字符)
AES Error: Given final block not properly padded(AES 錯誤:給定的最終塊未正確填充)
Detecting incorrect key using AES/GCM in JAVA(在 JAVA 中使用 AES/GCM 檢測不正確的密鑰)
AES-256-CBC in Java(Java 中的 AES-256-CBC)
主站蜘蛛池模板: 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 深圳网站建设-高端企业网站开发-定制网页设计制作公司 | b2b网站大全,b2b网站排名,找b2b网站就上地球网 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | 钛板_钛管_钛棒_钛盘管-无锡市盛钛科技有限公司 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 首页 - 军军小站|张军博客 | 超声波反应釜【百科】-以马内利仪器 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家 | EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司 | 电缆接头_防水接头_电缆防水接头_防水电缆接头_上海闵彬 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 广东佛电电器有限公司|防雷开关|故障电弧断路器|智能量测断路器 广东西屋电气有限公司-广东西屋电气有限公司 | 美甲贴片-指甲贴片-穿戴美甲-假指甲厂家--薇丝黛拉 | 压装机-卧式轴承轮轴数控伺服压装机厂家[铭泽机械] | 分子蒸馏设备(短程分子蒸馏装置)_上海达丰仪器 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 深圳APP开发_手机软件APP定制外包_小程序开发公司-来科信 | 防弹玻璃厂家_防爆炸玻璃_电磁屏蔽玻璃-四川大硅特玻科技有限公司 | 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | NM-02立式吸污机_ZHCS-02软轴刷_二合一吸刷软轴刷-厦门地坤科技有限公司 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 刺绳_刀片刺网_刺丝滚笼_不锈钢刺绳生产厂家_安平县浩荣金属丝网制品有限公司-安平县浩荣金属丝网制品有限公司 | Duoguan 夺冠集团|