最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java for循環(huán)常見優(yōu)化方法案例詳解

 更新時(shí)間:2021年08月31日 10:39:30   作者:Resourceful!  
這篇文章主要介紹了Java for循環(huán)常見優(yōu)化方法案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

前言

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

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

List<String> list = new ArrayList<String>();

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

for (int i = 0; i < list.size(); i++) {
 System.out.println(list.get(i));
}
  • 優(yōu)點(diǎn):較常見,易于理解
  • 缺點(diǎn):每次都要計(jì)算list.size()

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

int m = list.size();
for (int i = 0; i < m; i++) {
      System.out.println(list.get(i));
}
  • 優(yōu)點(diǎn):不必每次都計(jì)算
  • 缺點(diǎn):
  • 1.m的作用域不夠小,違反了最小作用域原則
    2.不能在for循環(huán)中操作list的大小,比如除去或新加一個(gè)元素

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

for (int i = 0, n = list.size(); i < n; i++) {
    System.out.println(list.get(i));
}
  • 優(yōu)點(diǎn):不必每次都計(jì)算 ,變量的作用域遵循最小范圍原則
  • 缺點(diǎn):
  • 1.m的作用域不夠小,違反了最小作用域原則
    2.不能在for循環(huán)中操作list的大小,比如除去或新加一個(gè)元素

方法四:采用倒序的寫法

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、看起來不習(xí)慣,不易讀懂
  • 適用場合:與顯示結(jié)果順序無關(guān)的地方:比如保存之前數(shù)據(jù)的校驗(yàn)

方法五:Iterator 遍歷

for (Iterator<String> it = list.iterator(); it.hasNext();) {
      System.out.println(it.next());
}
  • 優(yōu)點(diǎn):簡潔

方法六:jdk1.5后的寫法

for (Object o : list) {
     System.out.println(o);
}
  • 優(yōu)點(diǎn):簡潔結(jié)合泛型使用更簡潔
  • 缺點(diǎn):jdk1.4向下不兼容

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

for (int i = 0; i < 10; i++) {
   for (int j = 0; j < 10000; j++) {
   }
}

原因

圖片

方法八:循環(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) {
 
}
 catch (Exception e) {
 
     }
}

正例

try {
   for (int i = 0; i < 10; i++) {
   }
} catch (Exception e) {
 
}

到此這篇關(guān)于Java for循環(huán)常見優(yōu)化方法案例詳解的文章就介紹到這了,更多相關(guān)Java for循環(huán)常見優(yōu)化方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring-boot-maven-plugin:unknown的完美解決方法

    spring-boot-maven-plugin:unknown的完美解決方法

    這篇文章主要介紹了spring-boot-maven-plugin:unknown的完美解決方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Spring Boot 項(xiàng)目做性能監(jiān)控的操作流程

    Spring Boot 項(xiàng)目做性能監(jiān)控的操作流程

    這篇文章主要介紹了Spring Boot 項(xiàng)目如何做性能監(jiān)控,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot 入門教程之引入數(shù)據(jù)傳輸層的方法

    SpringBoot 入門教程之引入數(shù)據(jù)傳輸層的方法

    這篇文章主要介紹了SpringBoot 入門教程之引入數(shù)據(jù)傳輸層的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringCloud中分析講解Feign組件添加請求頭有哪些坑梳理

    SpringCloud中分析講解Feign組件添加請求頭有哪些坑梳理

    在spring?cloud的項(xiàng)目中用到了feign組件,簡單配置過后即可完成請求的調(diào)用。又因?yàn)橛邢蛘埱筇砑親eader頭的需求,查閱了官方示例后,就覺得很簡單,然后一頓操作之后調(diào)試報(bào)錯(cuò)...下面我們來詳細(xì)了解
    2022-06-06
  • Java的List集合中泛型使用詳解

    Java的List集合中泛型使用詳解

    這篇文章主要介紹了Java的List集合中泛型使用詳解,泛型類,如果沒有指定具體的數(shù)據(jù)類型,此時(shí),操作類型是Object,泛型的類型參數(shù)只能是類類型,不能是基本數(shù)據(jù)類型,需要的朋友可以參考下
    2023-12-12
  • Java調(diào)用Windows的DOS命令的方法

    Java調(diào)用Windows的DOS命令的方法

    這篇文章主要介紹了Java調(diào)用Windows的DOS命令的方法,其主要內(nèi)容思路是實(shí)現(xiàn)調(diào)用Windows的ipconfig命令,然后將輸出的信息通過IO流輸出到控制臺。有需要的小伙伴參考下
    2015-02-02
  • SSM框架把日志信息保存到數(shù)據(jù)庫過程詳解

    SSM框架把日志信息保存到數(shù)據(jù)庫過程詳解

    這篇文章主要介紹了SSM框架把日志信息保存到數(shù)據(jù)庫過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Spring boot2X Consul如何通過RestTemplate實(shí)現(xiàn)服務(wù)調(diào)用

    Spring boot2X Consul如何通過RestTemplate實(shí)現(xiàn)服務(wù)調(diào)用

    這篇文章主要介紹了spring boot2X Consul如何通過RestTemplate實(shí)現(xiàn)服務(wù)調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • SpringBoot多表聯(lián)查(測試可用)

    SpringBoot多表聯(lián)查(測試可用)

    這篇文章主要介紹了SpringBoot多表聯(lián)查(測試可用)的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • Java實(shí)現(xiàn)遠(yuǎn)程控制技術(shù)完整源代碼分享

    Java實(shí)現(xiàn)遠(yuǎn)程控制技術(shù)完整源代碼分享

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)遠(yuǎn)程控制技術(shù)完整源代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

交城县| 汝南县| 洛阳市| 台中市| 南乐县| 博爱县| 贵州省| 改则县| 黄大仙区| 铁力市| 海城市| 灵石县| 佛学| 尼勒克县| 濉溪县| 成武县| 伊金霍洛旗| 辽中县| 特克斯县| 曲靖市| 抚顺市| 周至县| 林甸县| 正安县| 平阳县| 红原县| 安丘市| 高雄市| 杭州市| 禹州市| 永善县| 南陵县| 台湾省| 厦门市| 南江县| 且末县| 田林县| 牟定县| 平乡县| 东港市| 浮山县|