0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

幾條for循環(huán)的常見優(yōu)化方式

5jek_harmonyos ? 來源:CSDN博客 ? 作者:艾陽Blog ? 2021-08-20 09:36 ? 次閱讀

前言我們都經(jīng)常使用一些循環(huán)耗時計算的操作,特別是for循環(huán),它是一種重復(fù)計算的操作,如果處理不好,耗時就比較大,如果處理書寫得當(dāng)將大大提高效率,下面總結(jié)幾條for循環(huán)的常見優(yōu)化方式。

首先,我們初始化一個集合 list,如下:

List《String》 list = new ArrayList《String》();

方法一:最常規(guī)的不加思考的寫法

for (int i = 0; i 《 list.size(); i++) {

System.out.println(list.get(i));

}

優(yōu)點:較常見,易于理解

缺點:每次都要計算list.size()

方法二:數(shù)組長度提取出來

int m = list.size();

for (int i = 0; i 《 m; i++) {

System.out.println(list.get(i));

}

優(yōu)點:不必每次都計算

缺點:

m的作用域不夠小,違反了最小作用域原則

不能在for循環(huán)中操作list的大小,比如除去或新加一個元素

方法三:數(shù)組長度提取出來

for (int i = 0, n = list.size(); i 《 n; i++) {

System.out.println(list.get(i));

}

優(yōu)點:不必每次都計算 ,變量的作用域遵循最小范圍原則

缺點:

m的作用域不夠小,違反了最小作用域原則

不能在for循環(huán)中操作list的大小,比如除去或新加一個元素

方法四:采用倒序的寫法

for (int i = list.size() - 1; i 》= 0; i--) {

System.out.println(list.get(i));

}

優(yōu)點:不必每次都計算 ,變量的作用域遵循最小范圍原則

缺點:1、結(jié)果的順序會反 2、看起來不習(xí)慣,不易讀懂

適用場合:與顯示結(jié)果順序無關(guān)的地方:比如保存之前數(shù)據(jù)的校驗

方法五:Iterator 遍歷

for (Iterator《String》 it = list.iterator(); it.hasNext();) {

System.out.println(it.next());

}

優(yōu)點:簡潔

方法六:jdk1.5后的寫法

for (Object o : list) {

System.out.println(o);

}

優(yōu)點:簡潔結(jié)合泛型使用更簡潔

缺點:jdk1.4向下不兼容

方法七:循環(huán)嵌套外小內(nèi)大原則

for (int i = 0; i 《 10; i++) {

for (int j = 0; j 《 10000; j++) {

}

}

原因

792cdd24-013c-11ec-9bcf-12bb97331649.png

方法八:循環(huán)嵌套提取不需要循環(huán)的邏輯

//前:

int a = 10, b = 11;

for (int i = 0; i 《 10; i++) {

i = i * a * b;

}

//后:

int c = a * b;

for (int i = 0; i 《 10; i++) {

i = i * c;

}

方法九:異常處理寫在循環(huán)外面

反例

for (int i = 0; i 《 10; i++) {

try {

} catch (Exception e) {

}

}

正例

try {

for (int i = 0; i 《 10; i++) {

}

} catch (Exception e) {

}

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 循環(huán)
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    16007
  • for
    for
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    15831

原文標(biāo)題:你真的會寫for循環(huán)嗎?來看看這些常見的for循環(huán)優(yōu)化方式

文章出處:【微信號:harmonyos_developer,微信公眾號:harmonyos_developer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    電源 PCB 布局中的常見錯誤及避免方式

    的異?,F(xiàn)象、根本原因以及優(yōu)化布局的方法和相關(guān)技巧。 1. 常見錯誤一:功率器件散熱不良 異?,F(xiàn)象 功率器件溫度過高,可能導(dǎo)致器件性能下降,甚至損壞。例如,MOSFET 的導(dǎo)通電阻會隨溫度升高而增大,進一步增加功耗,形成惡性循環(huán)。
    的頭像 發(fā)表于 01-08 15:28 ?343次閱讀

    深入理解C語言:循環(huán)語句的應(yīng)用與優(yōu)化技巧

    能讓你的代碼更加簡潔明了,還能顯著提升程序執(zhí)行效率。本文將詳細(xì)介紹C語言中的三種常見循環(huán)結(jié)構(gòu)——while循環(huán)、for循環(huán)和do...while循環(huán)
    的頭像 發(fā)表于 12-07 01:11 ?218次閱讀
    深入理解C語言:<b class='flag-5'>循環(huán)</b>語句的應(yīng)用與<b class='flag-5'>優(yōu)化</b>技巧

    串聯(lián)電容的常見應(yīng)用 如何優(yōu)化串聯(lián)電路的效率

    串聯(lián)電容的常見應(yīng)用 串聯(lián)電容是一種常見的電路元件連接方式,其在家居、工業(yè)及電力系統(tǒng)等多個領(lǐng)域有著廣泛的應(yīng)用。以下是串聯(lián)電容的一些常見應(yīng)用: 電力系統(tǒng)中的無功補償 : 在電力系統(tǒng)中,感性
    的頭像 發(fā)表于 12-02 16:35 ?1583次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)的優(yōu)化技巧

    循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,簡稱RNN)是一種用于處理序列數(shù)據(jù)的深度學(xué)習(xí)模型,它能夠捕捉時間序列中的動態(tài)特征。然而,RNN在訓(xùn)練過程中可能會遇到梯度消失或梯度
    的頭像 發(fā)表于 11-15 09:51 ?282次閱讀

    PGA309溫漂是否可以通過設(shè)置參數(shù)軟件方式優(yōu)化,如何優(yōu)化?

    1.PGA309溫漂是否可以通過設(shè)置參數(shù)軟件方式優(yōu)化,如何優(yōu)化? 2.針對可編程放大器,是否有數(shù)字輸出的PGA系列產(chǎn)品?
    發(fā)表于 08-09 07:04

    多級放大電路常見的耦合方式有哪些

    多級放大電路是電子電路中常見的一種電路結(jié)構(gòu),它由多個放大器級聯(lián)而成,以實現(xiàn)對信號的多級放大。耦合方式是多級放大電路中的關(guān)鍵技術(shù)之一,它決定了信號在各個放大器之間如何傳遞。本文將介紹多級放大電路常見
    的頭像 發(fā)表于 08-07 10:10 ?1016次閱讀

    常見的傳感器接線方式有哪些

    信息的傳輸、處理、存儲、顯示、記錄和控制等要求。常見的傳感器接線方式主要包括兩線制、三線制和四線制,每種方式都有其特定的應(yīng)用場景和接線規(guī)則。
    的頭像 發(fā)表于 07-30 11:50 ?1572次閱讀

    電機的冷卻方式有哪些

    的冷卻方式,包括常見的冷卻方式、冷卻方式的選擇依據(jù)、以及冷卻系統(tǒng)的設(shè)計和優(yōu)化等,以期為電機的設(shè)計、制造和運行提供有益的參考。
    的頭像 發(fā)表于 06-14 11:46 ?1858次閱讀

    感應(yīng)電機的常見啟動方式

    感應(yīng)電機,作為現(xiàn)代工業(yè)領(lǐng)域中廣泛應(yīng)用的電力驅(qū)動設(shè)備,其啟動方式的選擇直接影響到電機的運行性能、使用壽命以及整個系統(tǒng)的穩(wěn)定性和效率。因此,了解和掌握感應(yīng)電機的常見啟動方式對于工程師和技術(shù)人員來說
    的頭像 發(fā)表于 06-05 15:19 ?1294次閱讀

    綜合網(wǎng)線常見接線方式和步驟

    綜合網(wǎng)線的接線方式主要根據(jù)具體的應(yīng)用場景和網(wǎng)絡(luò)設(shè)備類型來確定。以下是一些常見的接線方式和步驟: 直通網(wǎng)線接線: 直通網(wǎng)線是最常見的網(wǎng)線類型,用于連接不同類型的設(shè)備,如PC到交換機或路由
    的頭像 發(fā)表于 05-10 10:52 ?1038次閱讀

    電子束光刻的參數(shù)優(yōu)化常見問題介紹

    本文從光刻圖案設(shè)計、特征尺寸、電鏡參數(shù)優(yōu)化等方面介紹電子束光刻的參數(shù)優(yōu)化,最后介紹了一些常見問題。
    的頭像 發(fā)表于 03-17 14:33 ?1184次閱讀
    電子束光刻的參數(shù)<b class='flag-5'>優(yōu)化</b>及<b class='flag-5'>常見</b>問題介紹

    什么是PLC循環(huán)移位指令 PLC循環(huán)移位的特點

    PLC循環(huán)移位指令包括循環(huán)左移指令和循環(huán)右移指令。在循環(huán)移位過程中,移出的位并不會丟失,而是會放回空出的位上,形成一個環(huán)形移位。
    的頭像 發(fā)表于 03-07 16:57 ?2264次閱讀
    什么是PLC<b class='flag-5'>循環(huán)</b>移位指令 PLC<b class='flag-5'>循環(huán)</b>移位的特點

    arduino中while循環(huán)怎么跳出

    優(yōu)化。 一、什么是 Arduino while 循環(huán) 1.1 while 循環(huán)的基本語法 在 Arduino 中,
    的頭像 發(fā)表于 02-14 16:22 ?2671次閱讀

    循環(huán)指令loop規(guī)定循環(huán)次數(shù)

    循環(huán)指令是計算機編程中非常重要的概念,它允許程序重復(fù)執(zhí)行一段代碼塊,使得程序可以更有效地處理大量數(shù)據(jù)和重復(fù)性任務(wù)。在本文中,我們將詳盡、詳實、細(xì)致地介紹循環(huán)指令的相關(guān)概念、語法和應(yīng)用場
    的頭像 發(fā)表于 02-14 16:10 ?1790次閱讀

    硅的形態(tài)與沉積方式

    優(yōu)化硅的形態(tài)與沉積方式是半導(dǎo)體和MEMS工藝的關(guān)鍵,LPCVD和APCVD為常見的硅沉積技術(shù)。
    的頭像 發(fā)表于 01-22 09:32 ?3338次閱讀
    硅的形態(tài)與沉積<b class='flag-5'>方式</b>