一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

5jek_harmonyos ? 來(lái)源:CSDN博客 ? 作者:艾陽(yáng)Blog ? 2021-08-20 09:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

}

優(yōu)點(diǎn):較常見(jiàn),易于理解

缺點(diǎn):每次都要計(jì)算list.size()

方法二:數(shù)組長(zhǎng)度提取出來(lái)

int m = list.size();

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

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

}

優(yōu)點(diǎn):不必每次都計(jì)算

缺點(diǎn):

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

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

方法三:數(shù)組長(zhǎng)度提取出來(lái)

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

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

}

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

缺點(diǎn):

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

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

方法四:采用倒序的寫(xiě)法

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

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

}

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

缺點(diǎn):1、結(jié)果的順序會(huì)反 2、看起來(lái)不習(xí)慣,不易讀懂

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

方法五:Iterator 遍歷

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

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

}

優(yōu)點(diǎn):簡(jiǎn)潔

方法六:jdk1.5后的寫(xiě)法

for (Object o : list) {

System.out.println(o);

}

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

缺點(diǎn):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;

}

方法九:異常處理寫(xiě)在循環(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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 循環(huán)
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

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

    關(guān)注

    0

    文章

    44

    瀏覽量

    16088

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    一個(gè)串口上位機(jī),采用生產(chǎn)消費(fèi)結(jié)構(gòu),但是消費(fèi)循環(huán)運(yùn)行跟不上生產(chǎn)循環(huán),到時(shí)最終輸出支持不了高頻率傳輸。如何優(yōu)化

    ,消費(fèi)者采運(yùn)行了395次。而且從時(shí)間上來(lái)講,生產(chǎn)者平均運(yùn)行時(shí)間還更長(zhǎng)。為什么消費(fèi)者反而運(yùn)行次數(shù)更少,是因?yàn)閘abview將資源更多分配給運(yùn)行時(shí)間長(zhǎng)的循環(huán)嗎。要優(yōu)化的話,我應(yīng)該優(yōu)化生產(chǎn)者還是消費(fèi)者。
    發(fā)表于 06-11 09:26

    如何用幾條命令搞定Ubuntu系統(tǒng)的網(wǎng)絡(luò)配置

    在某些場(chǎng)景下,設(shè)備沒(méi)有顯示器或屏可以用,這時(shí)候通過(guò)命令行來(lái)設(shè)置網(wǎng)絡(luò)就變得特別重要了。本文將介紹如何用幾條命令搞定Ubuntu系統(tǒng)的網(wǎng)絡(luò)配置。
    的頭像 發(fā)表于 03-14 10:53 ?2225次閱讀
    如何用<b class='flag-5'>幾條</b>命令搞定Ubuntu系統(tǒng)的網(wǎng)絡(luò)配置

    常見(jiàn)網(wǎng)絡(luò)負(fù)載均衡的幾種方式

    常見(jiàn)網(wǎng)絡(luò)負(fù)載均衡的幾種方式包括:DNS負(fù)載均衡、反向代理負(fù)載均衡、IP負(fù)載均衡、應(yīng)用層負(fù)載均衡、鏈路層負(fù)載均衡。以下是小編對(duì)幾種常見(jiàn)的網(wǎng)絡(luò)負(fù)載均衡方式及其詳細(xì)展開(kāi)介紹。
    的頭像 發(fā)表于 03-06 11:14 ?543次閱讀

    嵌入式系統(tǒng)中的代碼優(yōu)化與壓縮技術(shù)

    與續(xù)航能力。 二、代碼優(yōu)化策略 算法優(yōu)化:這是最基礎(chǔ)且有效的優(yōu)化方式。在圖像處理的嵌入式應(yīng)用中,傳統(tǒng)算法可能需要大量的計(jì)算資源和時(shí)間。采用更高效的邊緣檢測(cè)算法,如Canny算法的
    發(fā)表于 02-26 15:00

    可靠性溫度循環(huán)試驗(yàn)至少需要幾個(gè)循環(huán)?

    溫度循環(huán)作為自然環(huán)境的模擬,可以考核產(chǎn)品在不同環(huán)境條件下的適應(yīng)能力,常用于產(chǎn)品在開(kāi)發(fā)階段的型式試驗(yàn)、元器件的篩選試驗(yàn)。一、溫度循環(huán)測(cè)試介紹溫度循環(huán)試驗(yàn),也稱為熱循環(huán)試驗(yàn)、高低溫
    的頭像 發(fā)表于 01-23 15:26 ?575次閱讀
    可靠性溫度<b class='flag-5'>循環(huán)</b>試驗(yàn)至少需要幾個(gè)<b class='flag-5'>循環(huán)</b>?

    電源 PCB 布局中的常見(jiàn)錯(cuò)誤及避免方式

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

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

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

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

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

    示波器接口和連接方式 示波器的常見(jiàn)故障及解決方法

    示波器接口和連接方式 示波器是一種用于觀察和分析電信號(hào)波形的電子測(cè)量?jī)x器。它通過(guò)接口和連接方式與被測(cè)設(shè)備相連,以獲取信號(hào)并顯示在屏幕上。以下是一些常見(jiàn)的示波器接口和連接方式: 1. B
    的頭像 發(fā)表于 11-28 09:38 ?3351次閱讀

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

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

    常見(jiàn)人體姿態(tài)評(píng)估顯示方式的兩種方式

    人體姿態(tài)評(píng)估中有兩種常見(jiàn)的顯示方式,分別是火柴人效果與BodyPix效果。其中火柴人效果本質(zhì)就是基于關(guān)鍵點(diǎn)的深度學(xué)習(xí)模型推理以后的顯示效果;Bodypix本質(zhì)就就是語(yǔ)義分割模型
    的頭像 發(fā)表于 11-11 11:21 ?670次閱讀
    <b class='flag-5'>常見(jiàn)</b>人體姿態(tài)評(píng)估顯示<b class='flag-5'>方式</b>的兩種<b class='flag-5'>方式</b>

    嵌入式QT常見(jiàn)開(kāi)發(fā)方式有哪些?

    嵌入式QT常見(jiàn)開(kāi)發(fā)方式有哪些? 嵌入式工程師在學(xué)習(xí)和使用Qt進(jìn)行開(kāi)發(fā)時(shí),常見(jiàn)的幾種開(kāi)發(fā)方式包括: 1.Qt Widgets編程: 通過(guò)C++代碼直接編寫(xiě)GUI應(yīng)用程序,利用QtWi
    發(fā)表于 08-12 10:05

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

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

    多級(jí)放大電路常見(jiàn)的耦合方式有哪些

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

    常見(jiàn)的傳感器接線方式有哪些

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