首先,我们初始化一个集合 list,如下:

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

方法一:最常规的不加思考的写法

优点:较常见,易于理解

缺点:每次都要计算list.size()

    for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}

方法二:数组长度提取出来

    int m = list.size();for (int i = 0; i < m; i++) {System.out.println(list.get(i));}

优点:不必每次都计算

缺点:1、m的作用域不够小,违反了最小作用域原则 2、不能在for循环中操作list的大小,比如除去或新加一个元素

方法三:数组长度提取出来

    for (int i = 0, n = list.size(); i < n; i++) {System.out.println(list.get(i));}

优点:不必每次都计算 ,变量的作用域遵循最小范围原则

缺点:1、m的作用域不够小,违反了最小作用域原则 2、不能在for循环中操作list的大小,比如除去或新加一个元素

方法四:采用倒序的写法

优点:不必每次都计算 ,变量的作用域遵循最小范围原则

缺点:1、结果的顺序会反 2、看起来不习惯,不易读懂

适用场合:与显示结果顺序无关的地方:比如保存之前数据的校验

    for (int i = list.size() - 1; i >= 0; i--) {System.out.println(list.get(i));}

方法五:i++ 改为 ++i

优点:前置版本的递增运算符避免了不必要的工作,它把值加1后直接返回改变了的运算对象。

缺点:使用起来不一定习惯。

    for (int i = 0, n = list.size(); i < n; ++i) {System.out.println(list.get(i));}

方法六:循环嵌套外小内大原则

      for (int i = 0; i < 100; i++) {for (int j = 0; j < 100000; j++) {}}

方法七:循环嵌套提取不需要循环的逻辑

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

方法八:异常处理写在循环外面

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

异常在循环外

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

方法九:循环条件使用<要快于<=,>和>=同理

方法十:for循环的并行(C#的Parallel.For),要求每一程的循环,逻辑依赖关系相对独立。

方法十一:循环嵌套提取不需要循环的变量。

//前
int a=1,b=2;
for(int i=0;i<row.size();i++)
{i=i*a*b;}//后int a=1,b=2;int c=a*b;
for(int i=0;i<row.size();i++)
{i=i*c;}

For 循环优化,提升效率相关推荐

  1. DRO:SFM任务中的深度循环优化器(阿里巴巴AI Lab)

    代码.论文地址:在公众号「3D视觉工坊」,后台回复「DRO」,即可直接下载. Motivation: 解决一个优化问题,常见的优化器比如梯度下降法, 牛顿法等, 一般会先计算梯度------>再 ...

  2. 三重for循环优化_MATALB中对循环操作的优化

    众所周知,MATLAB程序效率最低最有潜力的地方便是循环了.最常见的循环莫过于对矩阵中的每一个元素进行操作,对于编程思维还在C语言或者C++,JAVA的人来说,第一反应就是两层循环,先来个 " ...

  3. php双层foreach,php 双层foreach 如何提升效率

    https://segmentfault.com/q/1010000011609822 两个数组都是近万条元素 切都是二维数组 请问如何优化提高效率 php版本 5.3 foreach ($array ...

  4. 深度循环优化器DRO:从视频流估计深度和相机轨迹

    ©作者|朝言 学校|香港科技大学 (HKUST) 研究方向|计算机视觉 我们提出了一个基于神经网络的端对端深度循环优化器,能够实时从视频中计算出视频流中每张图的深度和对应的相机轨迹,效果超越了之前所有 ...

  5. 云队友丨如何提升效率,所有方法都在这里

    第三季·大复盘 新年好! 专栏第三季度「效率升级」的课程已经全部讲完了,趁着还没开工,我来带你回顾一遍全季的内容,帮你把这些知识点,串联成一整个面,形成一套完整的知识结构,以便于你能够更好地吸收,转化 ...

  6. 谷歌发布 Android 8.1 首个开发者预览版,优化内存效率

    今晨,谷歌推出了 Android 8.1 首个开发者预览版,此次升级涵盖了针对多个功能的提升优化,其中包含对 Android Go (设备运行内存小于等于 1 GB)和加速设备上对机器学习的全新神经网 ...

  7. 基于中间代码的优化中,循环的查找算法有哪些?循环优化的方法有哪些?举例说明。

    基于中间代码的优化中,循环的查找算法有哪些?循环优化的方法有哪些?举例说明. 基于中间代码的优化中,循环的查找算法有哪些?循环优化的方法有哪些?举例说明. 西北工业大学编译原理课件第八章 代码优化.p ...

  8. 爱奇艺谢丹铭:用AI让创作者提升效率,让消费者简单快乐丨MEET2021

    编辑部 整理自 MEET 2021 量子位 报道 | 公众号 QbitAI AI技术,究竟能在哪些行业实现规模化应用? 这是视频行业面对AI浪潮,交出的一份答卷: 素材智能检索.老电影修复.音色克隆. ...

  9. 模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度

    模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度 发表于2015-03-30 23:46| 6209次阅读| 来源CSDN| 8 条评论| 作者霍强 模式识别微软亚洲研究院微软OCR文字 ...

最新文章

  1. 如何理解机器学习中的嵌入 (Embeddings)?
  2. 洛谷P1182 数列分段Section II 二分答案
  3. Xamarin.Forms教程下载安装Windows版的Xamarin开发工具
  4. 实验任务四:登录界面、实验任务五:猜数字
  5. 5分钟了解 Python 中的super函数是如何实现继承的
  6. [Z]为Web程序员解毒:9个IE常见Bug的解决方案
  7. int*与(int*)的差别
  8. Firefox(火狐浏览器)彩蛋
  9. 《你不常用的c#之五》:Thread与ThreadPool的内存之战
  10. Android开发指南中文版(十三)User Interface-Notifications
  11. Lamda和kappa架构
  12. 工作经验--他人经验
  13. Error opening data file Tesseract-OCR\tessdata/eng.traineddata问题解决
  14. SVN 代码与文件管理小记
  15. C++密钥生成和数据加密
  16. 在AndroidStudio中使用ARCore
  17. 英语语法总结_02 名词词组与代名词
  18. Android第三方开发包之高德地图SDK使用介绍
  19. 去哪儿cli2项目总结
  20. OpenVINO示例介绍

热门文章

  1. 供应链协作平台产品设计思维导图
  2. 设计模式:里氏替换原则(详解)
  3. 访外国语学院05年毕业生潘锐师姐
  4. Excel表格中输入一个姓,就可以选择输入需要的姓名了
  5. 2022-2028年全球与中国机身导线行业产销需求与投资预测分析
  6. 618新旧巨头战笔记之一
  7. 4 HQL操作之 -- DDL命令
  8. 极速安装和体验k8s(Minikube)
  9. 主成分分析(PCA)原理及推导
  10. 计算机视觉笔记11.26