0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

几条for循环的常见优化方式

5jek_harmonyos 来源:CSDN博客 作者:艾阳Blog 2021-08-20 09:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言我们都经常使用一些循环耗时计算的操作,特别是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()

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

int m = list.size();

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

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

}

优点:不必每次都计算

缺点:

m的作用域不够小,违反了最小作用域原则

不能在for循环中操作list的大小,比如除去或新加一个元素

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

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

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

}

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

缺点:

m的作用域不够小,违反了最小作用域原则

不能在for循环中操作list的大小,比如除去或新加一个元素

方法四:采用倒序的写法

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

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

}

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

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

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

方法五:Iterator 遍历

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

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

}

优点:简洁

方法六:jdk1.5后的写法

for (Object o : list) {

System.out.println(o);

}

优点:简洁结合泛型使用更简洁

缺点:jdk1.4向下不兼容

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

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

for (int j = 0; j 《 10000; j++) {

}

}

原因

792cdd24-013c-11ec-9bcf-12bb97331649.png

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

//前:

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) {

}

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 循环
    +关注

    关注

    0

    文章

    92

    浏览量

    16705
  • for
    for
    +关注

    关注

    0

    文章

    44

    浏览量

    16307

原文标题:你真的会写for循环吗?来看看这些常见的for循环优化方式

文章出处:【微信号:harmonyos_developer,微信公众号:harmonyos_developer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是热循环试验?有哪些设备?怎么做热循环试验?

    循环试验,也称为温度循环试验、高低温循环试验,是一种在常压下进行试件温度循环的可靠性试验,用于评估材料、组件或产品在温度变化条件下的耐久性和可靠性。通过模拟实际使用过程中可能遇到的温
    的头像 发表于 04-22 15:20 34次阅读
    什么是热<b class='flag-5'>循环</b>试验?有哪些设备?怎么做热<b class='flag-5'>循环</b>试验?

    【快速温变循环】快速温变循环试验箱的“循环”之道:宏展科技如何定义“一个循环

    在军工、航天、汽车电子等高端制造领域,快速温变循环试验是验证产品可靠性的核心手段。然而,“一个循环”到底如何定义?是简单的升降温,还是对速率、驻留时间、温变曲线精度、循环重复性的严苛约束?广东宏展
    的头像 发表于 04-16 09:38 249次阅读
    【快速温变<b class='flag-5'>循环</b>】快速温变<b class='flag-5'>循环</b>试验箱的“<b class='flag-5'>循环</b>”之道:宏展科技如何定义“一个<b class='flag-5'>循环</b>”

    功率循环基础篇(二) —— 功率循环寿命曲线解读

    功率循环寿命曲线是评估功率半导体器件(如  IGBT 模块)在温度交变应力下长期可靠性的核心工具。该曲线通常以 结温波动幅度 ΔTj 为横坐标,以器件达到指定失效判据前所经历的 循环次数 Nf 为
    的头像 发表于 03-02 11:55 324次阅读
    功率<b class='flag-5'>循环</b>基础篇(二) —— 功率<b class='flag-5'>循环</b>寿命曲线解读

    单片机大神的程序优化流程

    据存储器在不同的模块中可以重复利用。 9、设定合适的编译程序选项 许多编译程序有几种不同的优化选项,在使用前应理解各优化选项的含义,然后选用最合适的一种优化方式。通常情况下一旦选用最
    发表于 12-25 07:38

    一文看懂AI大模型的并行训练方式(DP、PP、TP、EP)

    大家都知道,AI计算(尤其是模型训练和推理),主要以并行计算为主。AI计算中涉及到的很多具体算法(例如矩阵相乘、卷积、循环层、梯度运算等),都需要基于成千上万的GPU,以并行任务的方式去完成。这样
    的头像 发表于 11-28 08:33 2060次阅读
    一文看懂AI大模型的并行训练<b class='flag-5'>方式</b>(DP、PP、TP、EP)

    请问Keil的优化等级到底该如何选择?

    内联(对小型函数)。 循环优化(如循环展开的有限形式)。 更积极的寄存器分配(变量可能不再驻留在内存中)。 公共子表达式消除。 强度削弱等。 -O3 (最高速度优化 / Optimi
    发表于 11-20 07:51

    循环发动机高工况适应性变几何分流环设计:前缘/壁面型线影响规律与优化策略

    双变循环发动机作为一种创新的航空动力系统,其核心特征在于采用三涵道变循环气动热力布局,通过精巧调节多个变几何部件,实现在不同飞行状态下的性能最优化。这种发动机的流道结构相比传统涡扇发动机更为复杂,增加了第三涵道和一系列可调机构,
    的头像 发表于 11-19 15:05 824次阅读
    变<b class='flag-5'>循环</b>发动机高工况适应性变几何分流环设计:前缘/壁面型线影响规律与<b class='flag-5'>优化</b>策略

    人工智能行业如何使用for循环语句进行循环

    人工智能行业可以使用以下是关于for循环在不同编程语言中的基本用法说明: Python中的for循环: 主要用于遍历序列(列表、元组、字符串等) 典型结构:for item in sequence
    的头像 发表于 09-10 12:55 686次阅读

    正确的连接电机传动轴的几种常见连接方式及其优缺点

    在工业机械和自动化设备中,电机与传动轴的连接方式直接影响设备的运行效率、稳定性和使用寿命。选择合适的连接方式需要综合考虑负载特性、安装精度、维护便利性以及成本等因素。以下是几种常见的电机传动轴连接
    的头像 发表于 09-10 07:41 3919次阅读

    常见的物联网连接方式有哪些?

    常见的物联网连接方式
    发表于 09-08 08:26

    常见的变压器接线组别的连接方式

    在电力系统中,变压器起着变换电压、传输电能的作用。而其绕组方式对于供电系统的运行稳定性和安全性具有重要意义。常见的变压器绕组有YNyn0、Dyn11、Y/△、YNd11等,下面将对这些绕组进行详细解析。
    的头像 发表于 09-03 14:07 4607次阅读

    基础篇3:掌握Python中的条件语句与循环

    通过学习条件语句和循环,您能够编写出能够根据不同情况和条件作出决策的Python程序。这些结构在编程中非常常见,对于提高编程能力和构建复杂程序至关重要。在接下来的学习和实践中,不断练习这些概念,您将能够更自如地运用它们来解决实际问题。
    发表于 07-03 16:13

    鸿蒙5开发宝藏案例分享---优化应用时延问题

    ** 问题 :5000条账目查询慢(157ms)优化循环外获取列索引 // 优化前(循环内重复调用) for(let i=0; i<5000; i++
    发表于 06-13 10:08

    一个串口上位机,采用生产消费结构,但是消费循环运行跟不上生产循环,到时最终输出支持不了高频率传输。如何优化

    ,消费者采运行了395次。而且从时间上来讲,生产者平均运行时间还更长。为什么消费者反而运行次数更少,是因为labview将资源更多分配给运行时间长的循环吗。要优化的话,我应该优化生产者还是消费者。
    发表于 06-11 09:26

    HarmonyOS优化应用内存占用问题性能优化

    可以避免图片过大或过小导致的显示问题,并提高应用程序的用户体验。 二、多种****方法 在日常开发中,常见的其他减少内存方式有如下几种: 使用虚引用(Weak Reference):在HarmonyOS
    发表于 05-21 11:27