Java基础——for循环及其优化

for循环的优化方式、循环的种类、使用及平替方案。 System.out.println("递归: " + current);// 递归调用特点:适合处理较为复杂的数据场景,可以无限套娃直到数据被完全处理或满足需求结束。 阅读详情

for循环
1.首先知道,for循环的3个表达式的意思:
表达式1: 一般为赋值表达式,给控制变量赋初值;
表达式2: 关系表达式或逻辑表达式,循环控制条件;
表达式3: 一般为赋值表达式,给控制变量增量或减量。
3个表达式都可以为空,第2个表达式为空,表示条件一直为true,for无限循环。

for(;;){
        System.out.println("hello");
}

//输出结果:无限输出,疯狂输出
hello
hello
……


2.第1个初始化表达式,可以对多个同类型变量赋值;第3个条件若有多个条件,可以用逻辑运算符(&& 、 || 、!)连接;第3个表达式可以用逗号隔开多个表达式

 

for(int i=0,j=0;i<10&&j<5;i++,j++){
        System.out.println("i="+i+",j="+j);
}


for循环优化
1、在参数表达式上优化
1.1、不要在表达式上做复杂运算
如下代码

 

List list = new ArrayList<>();
for (int i = 0; i < list.size(); i++) { 

} 


for的第2个表达式上面用了list.size(),这样就导致了每次循环到这里都要去进行一次list的个数计算,会降低性能;应该改为这样

 

List list = new ArrayList<>();
for (int i = 0, len = list.size(); i < len; i++) {

}



1.2、循环嵌套,应该采用外大内小型;也就是循环次数多的for放在外层,循环次数少的for放在内层。

 

for(int i=0;i<1000;i++){
        for(int j=0;j<100;j++){
                for(int k=0;k<10;k++){
                        function(i,j,k);
                }
        }
}

//耗时333 3105 纳秒

 

 

 

改为

for(int k=0;k<10;k++){
          for(int j=0;j<100;j++){
                    for(int i=0;i<1000;i++){
                              function(i,j,k);
                    }
          }
}

//耗时282 7670 纳秒

2、无用逻辑要放在循环外,避免重复计算发生

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;
}


3、try catch语句放到循环外,因为抓捕异常是非常耗时的,所以放到for外面一次抓取

 

for (int i = 0; i < 10; i++) {
           try {

           } catch (Exception e) {

          }
}


改为

 

try {
        for (int i = 0; i < 10; i++) {

        }
} catch (Exception e) {

}



参考资料:
http://www.cnblogs.com/ywl925/p/3608192.html
http://blog.youkuaiyun.com/liushuijinger/article/details/41546347
http://cgs1999.iteye.com/blog/1596671

 

16、Java 循环结构全解析:for 循环与嵌套循环深度探秘 本文深入解析了Java中的for循环结构及其高级应用,包括嵌套循环的使用方法与性能优化技巧。通过丰富的代码示例,详细介绍了for循环的基础知识、计数方式、变量作用域、循环控制语句以及嵌套循环在实际编程中的应用场景,如矩阵运算和图形绘制。此外,还对比了Java中三种主要的循环结构,并提供了选择合适循环结构的最佳实践。无论你是Java初学者还是有一定经验的开发者,本文都将帮助你更高效地掌握循环结构的使用。 阅读详情

相关推荐

Java for循环嵌套for循环,你需要懂的代码性能优化技巧

Java for循环嵌套for循环 性能优化

默默不代表沉默 1万+

java循环结构及校验键盘输入

不明确循环次数,且需要先判断后执行不明确循环次数,且先执行一次后判断明确循环次数。

qq_61553170的博客 536

java三种循环的优化

在java编程中,我们经常使用,但是你知道么?循环也可以优化,可以使你的程序运行的更加迅速

java编程 网络安全漏洞_Java编程安全漏洞之:不信任用户可控数据

Trust_Boundary_Violation违反信任边界,用户可控的数据被缓存到可信容器中。修复建议若无必要或可降低可信度存放,最好不要把非可信数据缓存到可信容器中。在存放之前对数据合法性进行校验。只有HttpSession和HttpServletContext被认为是可信容器。Unchecked_Input_for_Loop_Condition可输入的循环条件未作检查,用户可控的数据被作为循...

weixin_30436581的博客 1911

电影台词预测类型:NLP小样本多标签分类实战

电影类型预测本质上是短文本语义建模问题,核心在于从高度碎片化、低语义密度的台词(平均仅12.7词)中挖掘隐含的类型学编码规则。其技术难点在于:需应对省略主语、倒装、拟声词等非规范表达;处理Drama与Comedy等类型强共现的多标签耦合;并克服领域迁移障碍——维基文本预训练模型在台词上性能骤降0.11。解决方案聚焦RoBERTa微调、类型感知注意力机制与标签平滑策略,兼顾小样本鲁棒性与业务可解释性,广泛适用于影视元数据标注、智能推荐系统及NLP教学实践。

weixin_33309048的博客 288

避开CPU瓶颈:手把手教你用RK3588的DMA-BUF实现V4L2到NPU的零拷贝数据流

本文详细介绍了如何在RK3588平台上利用DMA-BUF实现V4L2到NPU的零拷贝数据流,显著提升异构计算性能。通过实战指南展示了如何配置摄像头采集、RGA图像预处理和NPU推理优化,最终实现CPU占用率降低60%、延迟减少60%的效果,特别适合YOLOv5等AI推理应用的高效部署。

weixin_30374009的博客 571

Java程序不满足条件的情况下重新输入的问题

在你执行到第二个if语句时,他就会输出让你重新输入,然后回到while循环。我们需要考虑用一个while循环!使用快捷键ctrl+alt+t即可。

sahllow的博客 431

Windows下ArduPilot SITL仿真环境搭建与QGC地面站联调全攻略

软件在环仿真(SITL)是无人机开发中的关键一环,它通过将飞控固件运行在PC上,用数学模型模拟传感器数据,实现无硬件依赖的飞行逻辑验证。这项技术不仅降低了试错成本,更为地面站开发、自动化测试和任务规划提供了安全可控的试验场。在工程实践中,MAVLink协议作为飞控与地面站之间的通信桥梁,贯穿仿真、遥测与指令控制全程。结合QGroundControl(QGC)这一主流地面站,开发者可以直观地观察飞行状态、规划航点并记录日志。本文以Windows原生环境为例,详细介绍ArduPilot SITL的搭建流程、MA

weixin_31858171的博客 317

C++ 代码性能优化 -- 循环分割提高并行性

对于一个可结合和可交换的合并操作来说,比如整数的加法或乘法, 我们可以通过将一组合并操作分割成 2 个或更多的部分,并在最后合并结果来提高性能。 原理: 普通代码只能利用 CPU 的一个寄存器,分割后可以利用多个寄存器。 当分割达到一个数量时,寄存器用完,性能不再提升,甚至会开始下降。 用代码来描述,如下: // 一般情况下的代码 for (i = 1; i ...

weixin_34268753的博客 1012

yolov5部署之七步完成tensorRT模型推理加速

目录前言step 1. 下载yolov5源码以及tensorrtx源码,并将yolov5s.pt转为.wts模型step 2. 确定并下载自己准备使用的CUDA版本。step 3. 根据自己的CUDA版本下载对应版本的cuDNN以及TensorRTstep 4. 根据自己使用的VS版本下载对应版本的OpenCVstep 5. 安装CUDAstep 6. 安装cuDNN、TensorRT以及验证TensorRT是否安装成功 前言     前段时间研究了Pytorch的环境配置,之后便从github上下载了yo

Christo的博客 4万+

人工智能AI在软件测试和质量效能中的实际应用

人工智能在软件测试中应用,介绍chatGPT在测试中的应用,还有多个AI驱动的测试工具。

lindafang72的博客 1万+

java--for循环java多线程优化

线程池优化for循环--java

weixin_44951291的博客 3168

数字电视中的AD(Audio Description)音频描述技术详解

AD(Audio Description)音频描述是一种辅助技术,旨在帮助视障人士更好地理解视觉内容。通过在节目或视频的自然停顿处插入额外的语音叙述来解释屏幕上的视觉信息,如人物动作、场景变化、文字说明等,从而让视力受损的人士也能获得完整的观影体验。AD服务不仅限于电视广播,也广泛应用于电影、剧院表演、在线视频平台等领域。PID:用于标识和区分不同的音频流。PMT表:提供每个音频流的详细信息,包括PID、编解码器类型和语言代码。时间戳:PTS和DTS用于同步音频与视频内容。解复用。

以实战经验介绍行业知识 741

【java日记】02:基础语法

注意到:在java中String尽量少用+或者=这类赋值,因为普通的String是不可拓展的。还有StringBuilder以及StringJoiner这两对象。这边做了leetcode第一题,用java的哈希map实现。语法上和C++几乎一样,当然我指的是基础语法糖。比如String的一些方法。比如,int、float。学习了一些基础api。

SSDMC_的博客 201

STM32驱动HC-SR04超声波模块

本篇文章将带大家使用HAL库驱动HC-SR04超声波模块。超声波模块作为智能小车必备的模块,要学习智能小车的同学是必须掌握好这个模块的使用的。HC-SR04是一种常用的超声波传感器模块,也被称为超声波测距模块,广泛应用于各种自动化控制和测距系统中。它通常由超声波发射器、接收器、控制电路和外壳组成,可以实现非接触式的距离测量。下面是HC-SR04超声波模块的一些特性和技术参数:距离测量范围:2cm ~ 400cm(可调)。测量精度:0.3cm。工作电压:DC 5V。工作电流:15mA。

m0_49476241的博客 7684

SIMULINK开发项目实例 1000 例专栏之第960例--基于电力系统稳定性的建模与仿真场景:-含分布式电源的配电网电压稳定性研究

间歇性与随机性:例如,太阳能依赖于日照强度,风能依赖于风速,这使得它们的输出功率具有不确定性。逆变器接口:大多数分布式电源通过逆变器接入电网,这对电网的动态响应特性产生了影响。位置分散:通常分布在用户侧或靠近负荷中心的位置。本文详细介绍了如何使用Simulink结合Simscape Electrical 构建一个用于研究含分布式电源配电网电压稳定性的模型,并提供了详细的仿真流程说明。

xiaoheshang_123的博客 153

java基础Ⅱ

java基础Ⅱ 包机制 为了更好地组织类 语法格式: package … 利用公司域名倒置作为包名 导入包: import … 通配符*: import java.lang.*; 生成javadoc: tools/generate javadoc Scanner 创建扫描器对象, 接受键盘数据 Scanner s = new Scanner(System.in); s.close(); 及时关闭, 减少资源浪费 s.next() 和 s.nextline() 获取输入的字符串 s.hasNext()

weixin_45793258的博客 205

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java for循环如何优化_java for循环及其优化

for循环1.首先知道,for循环的3个表达式的意思:表达式1: 一般为赋值表达式,给控制变量赋初值;表达式2: 关系表达式或逻辑表达式,循环控制条件;表达式3: 一般为赋值表达式,给控制变量增量或减量。3个表达式都可以为空,第2个表达式为空,表示条件一直为true,for无限循环。for(;;){System.out.println("hello");}//输出结果:无限输出,疯狂输出hello...

weixin_29300241的博客 6262

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JAVA增强for循环

增强for循环 为什么需要增强for循环呢? 简化数组和集合的遍历。 想要使用增强for循环必须先要了解它的格式 增强for循环的格式 for(数据类型 变量名 : 数组或者集合对象){ //循环体,变量即元素 } 下边我们通过案例演示一下: //需求通过增强for遍历list集合。 public static void main(String[]args){ //复习一下如何创建List集合 //1.创建元素对象 List list = new ArrayList(); } ...

weixin_52231266的博客 1万+

深入解析Java中的for循环:从基础到优化

最新接入DeepSeek-V3模型,点击下载最新版本InsCode AI IDE 深入解析Java中的for循环:从基础到优化 在编程的世界里,循环结构是程序设计中不可或缺的一部分。无论是处理大量数据、遍历集合还是执行重复任务,循环都扮演着至关重要的角色。而在Java编程语言中,for循环更是应用广泛且功能强大的工具之一。本文将深入探讨Java中的for循环,结合现代化的开发工具——如InsCod...

inscode_099的博客 939

关于for循环嵌套for循环的优化问题

每天记录开发中的一个小问题 对于for循环的嵌套问题 我们常见就是这样: for (int i = 0; i < 1000; i++){ for (int j = 0; j < 100; j++){ for (int k = 0; k < 10; k++){ system.out.println(i+"====="+j+"====="+k); } } } 从上例的代码来看,我们常见的写法通常是利用if(){}、break;、conti

#斐科同学# 7414

你真的会写for循环吗?常见for循环优化实践!

我们都经常使用一些循环耗时计算的操作,特别是for循环,它是一种重复计算的操作,如果处理不好,耗时就比较大,如果处理书写得当将大大提高效率,下面总结几条for循环的常见优化方式。

IT界那些事儿 2666

深入解析Java中的for循环:从基础到高阶用法

作为Java程序中最常用的控制结构之一,‌for循环‌承担着80%以上的遍历操作。本文将全面剖析Java中各类for循环的实现原理、使用场景和性能差异,涵盖‌传统for循环‌、‌增强型for循环‌、‌Stream API‌和‌并行流‌等用法,并通过大量代码示例展示实际开发中的最佳实践。场景‌ ‌推荐方式‌数组遍历传统for循环集合顺序访问增强型for循环函数式处理复杂条件控制传统for循环大数据量并行处理并行流。

weixin_42593797的博客 3776

Java 嵌套 for 循环优化方案详解

Java 中的嵌套 for 循环在处理大数据集时可能会导致性能问题。通过优化这些循环,可以显著提升程序的执行效率。以下是几种常见的优化方法,并附有详细的代码示例和注释。

微笑听雨 4486

探索Java编程的高效之道:深入解析for循环及其优化技巧

最新接入DeepSeek-V3模型,点击下载最新版本InsCode AI IDE 探索Java编程的高效之道:深入解析for循环及其优化技巧 在Java编程中,for循环是不可或缺的一部分。它不仅帮助我们简化重复性任务,还能提高代码的可读性和执行效率。然而,随着项目规模的增长和复杂度的增加,如何高效地编写和优化for循环成为了许多开发者面临的挑战。本文将深入探讨Java中的for循环,并结合智能化...

inscode_018的博客 635

java 普通for循环与增强for循环的性能对比

有些人循环用的是普通for循环, 有些人用的是增强for循环, 它们之间有什么区别?应该在什么时候使用这两种循环了? ==========语法格式========== 普通for循环语法: for (int i = 0; i &lt; integers.length; i++) { System.out.println(intergers[i]); } 增强for...

越努力越有钱的博客 1万+
上一篇: Java基础——try finally执行顺序
下一篇: Java基础——switch case用法
冷静BB
博客等级 码龄12年 298粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值