二維碼
        企資網

        掃一掃關注

        當前位置: 首頁 » 企資快報 » 服務 » 正文

        你沒有見過的 7種 for 循環優化,超好用

        放大字體  縮小字體 發布日期:2021-08-26 02:59:30    作者:媒體小英    瀏覽次數:16
        導讀

        來源:blog.csdn.net/csdn_aiyang/article/details/75162134我們都經常使用一些循環耗時計算的操作,特別是for循環,她是一種重復計算的操作,如果處理不好,耗時就比較大,如果處理書寫得當將大大提高效率,下面總

        來源:blog.csdn.net/csdn_aiyang/article/details/75162134

        我們都經常使用一些循環耗時計算的操作,特別是for循環,她是一種重復計算的操作,如果處理不好,耗時就比較大,如果處理書寫得當將大大提高效率,下面總結幾條for循環的常見優化方式。

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

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

        常規寫法

        for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i));}
      1. 優點:較常見,易于理解
      2. 缺點:每次都要計算 list.size()

        優化1:數組長度提取出來

        int m = list.size();for (int i = 0; i < m; i++) {      System.out.println(list.get(i));}
      3. 優點:不必每次都計算
      4. 缺點:
      5. m的作用域不夠小,違反了最小作用域原則;
      6. 不能在for循環中操作list的大小,比如除去或新加一個元素。

        優化2:數組長度提取出來

        for (int i = 0, n = list.size(); i < n; i++) {    System.out.println(list.get(i));}
      7. 優點:不必每次都計算 ,變量的作用域遵循最小范圍原則。
      8. 缺點:

      9. 不能在for循環中操作list的大小,比如除去或新加一個元素。

        優化3:采用倒序的寫法

        for (int i = list.size() - 1; i >= 0; i--) {System.out.println(list.get(i));}
      10. 優點:不必每次都計算 ,變量的作用域遵循最小范圍原則。
      11. 缺點:
      12. 結果的順序會反;
      13. 看起來不習慣,不易讀懂。
      14. 適用場合:與顯示結果順序無關的地方:比如保存之前數據的校驗。

        遍歷

        for (Iterator<String> it = list.iterator(); it.hasNext();) {      System.out.println(it.next());}
      15. 優點:簡潔。

        優化4:優化遍歷

        for (Object o : list) {     System.out.println(o);}
      16. 優點:簡潔、結合泛型使用更簡潔。
      17. 缺點:jdk1.4向下不兼容。

        優化5:循環嵌套外小內大原則

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

        原因:嵌套循環應該遵循“外小內大”的原則,這就好比你復制很多個小文件和復制幾個大文件的區別,復制很多小文件速度是很慢的,而復制幾個大文件速度則快很多。

        優化6:循環嵌套提取不需要循環的邏輯

        //前: 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;  }

        優化7:異常處理寫在循環外面

        反例

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

        正例

        try {   for (int i = 0; i < 10; i++) {   }} catch (Exception e) { }
      18.  
        (文/媒體小英)
        免責聲明
        本文僅代表作發布者:媒體小英個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

        粵ICP備16078936號

        微信

        關注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯系
        客服

        聯系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號: weishitui

        客服001 客服002 客服003

        工作時間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        主站蜘蛛池模板: 日本不卡在线一区二区三区视频| 波多野结衣电影区一区二区三区 | 精品国产AⅤ一区二区三区4区 | 福利在线一区二区| 亚洲色偷偷偷网站色偷一区| 日韩一区在线视频| 亚洲AV一区二区三区四区| 久久久久国产一区二区三区| 韩国精品一区二区三区无码视频| 免费无码一区二区三区| 国产一区二区精品| 亚洲无线码一区二区三区| 精品国产一区二区三区AV性色| 精品一区二区久久久久久久网精| 亚洲第一区二区快射影院| 99久久人妻精品免费一区| 亚洲一区爱区精品无码| 中文字幕一精品亚洲无线一区| 无码毛片一区二区三区中文字幕 | 久久99热狠狠色精品一区| 国产一区二区三区精品视频| 精品视频一区二区三区| 亚洲一区精品伊人久久伊人| 一级特黄性色生活片一区二区| 国产一区在线播放| 国产日韩精品一区二区三区| 国产婷婷色一区二区三区深爱网| 日韩精品一区二区三区中文3d | 精品熟人妻一区二区三区四区不卡| 另类一区二区三区| 免费无码毛片一区二区APP| 亚洲电影一区二区三区| 亚洲国产福利精品一区二区| 国内精品一区二区三区东京| 久久中文字幕无码一区二区 | 国产一区二区三区不卡在线观看| 国产麻豆剧果冻传媒一区| 制服美女视频一区| 精品一区二区无码AV| 亚洲AV无码一区二区三区系列| 91一区二区视频|