foreach與for循環(huán)效率對(duì)比

以下內(nèi)容整理自互聯(lián)網(wǎng),僅用于個(gè)人學(xué)習(xí)


for循環(huán)

  • for需要獲取容器大小,如果計(jì)算大小比較耗時(shí)麸恍,那么for循環(huán)效率會(huì)很低。
  • for循環(huán)是根據(jù)容器大小防止越界搀矫,因此每次循環(huán)需要進(jìn)行一次比較抹沪。

foreach

ForEach 編譯成字節(jié)碼之后,使用的是迭代器實(shí)現(xiàn)的瓤球,所以本質(zhì)上是通過迭代器遍歷的融欧。
將foreach代碼反編譯后得到的代碼如下:

public static void testForEach(List list) {  
    for (Iterator iterator = list.iterator(); iterator.hasNext();) {  
        Object t = iterator.next();  
        Object obj = t;  
    }  
} 

可以看到,只比迭代器遍歷多了生成中間變量這一步卦羡,因此性能也略微下降了一些噪馏。

  • 無需獲取容器大小。
  • 需要?jiǎng)?chuàng)建額外的迭代器變量绿饵。
  • 遍歷期間得到的是對(duì)象欠肾,沒有索引位置信息,因此沒辦法將指定索引位置對(duì)象替換為新對(duì)象拟赊,也就是不能賦值刺桃。

效率對(duì)比

由于for循環(huán)的特性,每次循環(huán)都會(huì)進(jìn)行比較吸祟,所以效率上不如foreach瑟慈。
但這個(gè)結(jié)論并不是絕對(duì)的,選擇for或者foreach欢搜,還要考慮幾點(diǎn):

  • 如果只是讀數(shù)據(jù)封豪,優(yōu)先選擇foreach谴轮,因?yàn)樾矢叱次粒掖a簡(jiǎn)單,方便第步;
  • 如果要寫數(shù)據(jù)疮装,即替換指定索引位置處的對(duì)象,就只能選擇for了粘都。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末廓推,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子翩隧,更是在濱河造成了極大的恐慌樊展,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異专缠,居然都是意外死亡雷酪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門涝婉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哥力,“玉大人,你說我怎么就攤上這事墩弯》园希” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵渔工,是天一觀的道長(zhǎng)锌钮。 經(jīng)常有香客問我,道長(zhǎng)引矩,這世上最難降的妖魔是什么轧粟? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮脓魏,結(jié)果婚禮上兰吟,老公的妹妹穿的比我還像新娘。我一直安慰自己茂翔,他們只是感情好混蔼,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著珊燎,像睡著了一般惭嚣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悔政,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天晚吞,我揣著相機(jī)與錄音,去河邊找鬼谋国。 笑死槽地,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芦瘾。 我是一名探鬼主播捌蚊,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼近弟!你這毒婦竟也來了缅糟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤祷愉,失蹤者是張志新(化名)和其女友劉穎窗宦,沒想到半個(gè)月后赦颇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赴涵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年沐扳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片句占。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沪摄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纱烘,到底是詐尸還是另有隱情杨拐,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布擂啥,位于F島的核電站哄陶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏哺壶。R本人自食惡果不足惜屋吨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望山宾。 院中可真熱鬧至扰,春花似錦、人聲如沸资锰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)绷杜。三九已至直秆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鞭盟,已是汗流浹背圾结。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留齿诉,地道東北人筝野。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像鹃两,于是被迫代替她去往敵國(guó)和親遗座。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 從三月份找實(shí)習(xí)到現(xiàn)在俊扳,面了一些公司,掛了不少猛遍,但最終還是拿到小米馋记、百度号坡、阿里、京東梯醒、新浪宽堆、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,271評(píng)論 11 349
  • 我們?cè)趯W(xué)習(xí)web前端的路程起步時(shí)總是疑問,我們?nèi)绾胃玫谋闅v元素呢号胚?迭代器和生成器是什么籽慢?今天為大家?guī)吓c精彩的E...
    儂姝沁兒閱讀 3,337評(píng)論 0 6
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法猫胁,內(nèi)部類的語法箱亿,繼承相關(guān)的語法,異常的語法弃秆,線程的語...
    子非魚_t_閱讀 31,657評(píng)論 18 399
  • 小姑娘失戀的第十一天届惋。 腦子里老是出現(xiàn)一幅畫面:你有了喜歡的人,特別堅(jiān)定的要和她在一起菠赚,和當(dāng)初思考我們的問題時(shí)的那...
    歌者與貓Alice閱讀 256評(píng)論 0 0
  • 完成任務(wù): ● 百詞斬: 四級(jí)單詞結(jié)束? ●日語單詞背寫 ? ● 《五步玩轉(zhuǎn)純正英語》五集 結(jié)束 ? ●《每日一T...
    MickeyMinnie閱讀 125評(píng)論 0 0