<strike id="ca4is"><em id="ca4is"></em></strike>
  • <sup id="ca4is"></sup>
    • <s id="ca4is"><em id="ca4is"></em></s>
      <option id="ca4is"><cite id="ca4is"></cite></option>
    • 二維碼
      企資網

      掃一掃關注

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

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

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

      來源: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));}
    • 優點:較常見,易于理解
    • 缺點:每次都要計算 list.size()

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

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

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

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

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

      優化3:采用倒序的寫法

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

      遍歷

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

      優化4:優化遍歷

      for (Object o : list) {     System.out.println(o);}
    • 優點:簡潔、結合泛型使用更簡潔。
    • 缺點: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) { }
    •  
      (文/媒體小英)
      免責聲明
      本文僅代表作發布者:媒體小英個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件: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

      反饋

      用戶
      反饋

      午夜久久久久久网站,99久久www免费,欧美日本日韩aⅴ在线视频,东京干手机福利视频
        <strike id="ca4is"><em id="ca4is"></em></strike>
      • <sup id="ca4is"></sup>
        • <s id="ca4is"><em id="ca4is"></em></s>
          <option id="ca4is"><cite id="ca4is"></cite></option>
        • 主站蜘蛛池模板: 99riav视频国产在线看| 免费人成年轻人电影| 么公的又大又深又硬想要| 中国一级毛片视频| 四虎国产精品永久在线播放| 欧美日韩一区二区综合| 婷婷激情五月网| 国产乱视频在线观看| 久久亚洲色一区二区三区| **俄罗斯毛片免费| 欧美另类69xxxx| 国产精品久久香蕉免费播放| 亚洲免费在线视频观看| 99热这里只有精品国产动漫 | 欧美黑人粗大xxxxbbbb| 国精品无码一区二区三区在线蜜臀| 嗨动漫在线观看| 久久精品国产亚洲av忘忧草18| 91精品欧美综合在线观看| 欧美精品一区二区三区在线| 国产精品视频全国免费观看| 亚洲午夜无码久久久久小说| 欧美一级黄视频| 欧美乱大交XXXXX疯狂俱乐部| 国产真实伦在线观看| 亚洲成人免费网站| 99久久精品日本一区二区免费| 精品伊人久久久香线蕉| 天天操天天射天天爽| 农村妇女色又黄一级毛片不卡| japanese中文字幕| 欧美精品一区二区三区在线 | 先锋影音av资源网| 99re热久久| 波多野给衣一区二区三区| 国产精品无码制服丝袜| 九色综合久久综合欧美97| 蜜桃臀无码内射一区二区三区| 日韩免费福利视频| 午夜视频在线观看一区| 一级性生活免费|