for循环的优化方式、循环的种类、使用及平替方案。

本篇文章主要围绕for循环,来讲解循环处理数据中常见的六种方式及其特点,性能。通过本篇文章你可以快速了解循环的概念,以及循环在实际使用过程中的调优方案。
作者:任聪聪
日期:2025年4月11日

一、循环的种类

1.1 默认有以下类型

原始 for 循环

	for(i = 0;i<10;i++){......TODO}

特点:固定、操作数据较为复杂、效率较低

增强 for 循环

	List<Integer> numArr= Arrays.asList(66,99,88);for (Integer num: numArr) {......TODO}

特点:固定、操作简单、效率稍好

while 循环

	List<String> numArr= Arrays.asList("没有bug","工作easy");while (index < numArr.size()) {System.out.println(numArr.get(index));index++;}

特点:固定、简单、适用于不确定执行结束次数的情况

do-while 循环

	List<String> numArr= Arrays.asList("没有bug","工作easy");do {if (index < numArr.size()) {System.out.println(numArr.get(index));}index++;} while (index < numArr.size());

特点:条件式的循环、操作简单、执行完毕结束(至少执行一次)

Iterator 循环

	List<String> numArr= Arrays.asList("没有bug","工作easy");IteratorString> iterator = numArr.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}

特点:操作简单、运行效果较好、数据复制和处理较好、手动控制迭代数据较为方便

Stream API 循环

	List<String> numArr= Arrays.asList("好运","幸运");numArr.stream().forEach(System.out::println);

特点:代码简洁、操作直接、并发运行、速度更快、适合数据的任意条件、复制、更新、删除等操作。

1.2 自定义递归函数方式

private static void recursivePrint(int current, int limit) {if (current < limit) {System.out.println("递归: " + current);recursivePrint(current + 1, limit); // 递归调用}}

特点:适合处理较为复杂的数据场景,可以无限套娃直到数据被完全处理或满足需求结束。

二、FOR循环平替方案

将如下代码实例,通过idea进行创建一个java 空项目,创建文件内容如下,即可体验和学习for循环平替方案的代码内容。

在这里插入图片描述

代码实例:

import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collector

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

穿透三层内网VPC1

网络拓扑: 打开入口web服务 信息收集发现漏洞CVE-2024-4577 PHP CGI Windows平台远程代码执行漏洞&#xff08;CVE-2024-4577&#xff09;复现_cve-2024-4577漏洞复现-CSDN博客 利用POC&#xff1a; 执行成功&#xff0c;那么直接上传马子&#xff0c;注意&#xff0c;这里要…

【计算机网络】同步操作 vs 异步操作:核心区别与实战场景解析

&#x1f4cc; 引言 在网络通信和分布式系统中&#xff0c;**同步&#xff08;Synchronous&#xff09;和异步&#xff08;Asynchronous&#xff09;**是两种基础却易混淆的操作模式。本文将通过代码示例、生活类比和对比表格&#xff0c;帮你彻底理解它们的区别与应用场景。 1…

TensorFlow充分并行化使用CPU

关键字&#xff1a;TensorFlow 并行化、TensorFlow CPU多线程 场景&#xff1a;在没有GPU或者GPU性能一般、环境不可用的机器上&#xff0c;对于多核CPU&#xff0c;有时TensorFlow或上层的Keras默认并没有完全利用机器的计算能力&#xff08;CPU占用没有接近100%&#xff09;…

Kubernetes容器编排与云原生实践

第一部分&#xff1a;Kubernetes基础架构与核心原理 第1章 容器技术的演进与Kubernetes的诞生 1.1 虚拟化技术的三次革命 物理机时代&#xff1a;资源浪费严重&#xff0c;利用率不足15% 虚拟机突破&#xff1a;VMware与Hyper-V实现硬件虚拟化&#xff0c;利用率提升至50% …

Windows 录音格式为什么是 M4A?M4A 怎样转为 MP3 格式

M4A 格式凭借其高效的压缩技术和卓越的音质表现脱颖而出&#xff0c;成为了包括 Windows 在内的众多操作系统默认的录音格式选择。然而&#xff0c;尽管 M4A 格式拥有诸多优点&#xff0c;不同的应用场景有时需要将这些文件转换为其他格式以满足特定需求。 本文将探讨 M4A 格式…

Qt之OpenGL使用Qt封装好的着色器和编译器

代码 #include "sunopengl.h"sunOpengl::sunOpengl(QWidget *parent) {}unsigned int VBO,VAO; float vertices[]{0.5f,0.5f,0.0f,0.5f,-0.5f,0.0f,-0.5f,-0.5f,0.0f,-0.5f,0.5f,0.0f };unsigned int indices[]{0,1,3,1,2,3, }; unsigned int EBO; sunOpengl::~sunO…

HCIP-17 BGP基础2

HCIP-17 BGP基础2 一、bgp的路由黑洞问题 1.bgp的同步功能 ipv4-family unicast IPV4的地址簇 undo synchronization 关闭BGP同步功能 bgp的同步功能原理 当边界路由器从ibgp邻居收到一条路由后&#xff0c;会使用该路由和igp路由表进行比较。 如果在igp路由表中存在…

leetcode_15. 三数之和_java

15. 三数之和https://leetcode.cn/problems/3sum/ 1、题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。…

Open Interpreter:重新定义人机交互的开源革命

引言 在人工智能技术蓬勃发展的今天&#xff0c;人机交互的方式正经历着前所未有的变革。Open Interpreter&#xff0c;作为一个开源项目&#xff0c;正在重新定义我们与计算机的互动方式。它允许大型语言模型&#xff08;LLMs&#xff09;在本地运行代码&#xff0c;通过自然…

【JavaScript】错误处理与调试

个人主页&#xff1a;Guiat 归属专栏&#xff1a;HTML CSS JavaScript 文章目录 1. JavaScript 错误处理基础1.1 错误类型1.2 try...catch 语句 2. 错误抛出与自定义错误2.1 throw 语句2.2 自定义错误类型 3. 异步错误处理3.1 Promise 错误处理3.2 async/await 错误处理 4. 调试…

算法基础模板

高精度加法 #include <bits/stdc.h> using namespace std; const int N10005; int A[N],B[N],C[N],al,bl,cl; void add(int A[],int B[],int C[]) {for(int icl-1;~i;i--){C[cl]A[i]B[i];C[cl1]C[cl]/10;C[cl]%10;}if(C[cl])cl; } int main() {string a,b;cin>>a&…

自行搭建一个Git仓库托管平台

1.安装Git sudo apt install git 2.Git本地仓库创建&#xff08;自己选择一个文件夹&#xff09; git init 这里我在 /home/test 下面初始化了代码仓库 1. 首先在仓库中新建一个txt文件&#xff0c;并输入一些内容 2. 将文件添加到仓库 git add test.txt 执行之后没有任何输…

[MySQL]数据库与表创建

欢迎来到啾啾的博客&#x1f431;。 这是一个致力于构建完善 Java 程序员知识体系的博客&#x1f4da;。 它记录学习点滴&#xff0c;分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 欢迎评论交流&#xff0c;感谢您的阅读&#x1f604;。 本篇简单记录…

相机回调函数为静态函数原因

在注册相机SDK的回调函数时&#xff0c;是否需要设置为静态函数取决于具体SDK的设计要求&#xff0c;但通常需要遵循以下原则&#xff1a; 1. 必须使用静态函数的情况 当相机SDK是C语言接口或要求普通函数指针时&#xff0c;回调必须声明为静态成员函数或全局函数&#xff1a;…

《Vue Router实战教程》4.路由的匹配语法

欢迎观看《Vue Router 实战&#xff08;第4版&#xff09;》视频课程 路由的匹配语法 大多数应用都会使用 /about 这样的静态路由和 /users/:userId 这样的动态路由&#xff0c;就像我们刚才在动态路由匹配中看到的那样&#xff0c;但是 Vue Router 可以提供更多的方式&#…

Debezium报错处理系列之第128篇:增量快照报错java.lang.OutOfMemoryError: Java heap space

Debezium报错处理系列之第128篇:增量快照报错java.lang.OutOfMemoryError: Java heap space 一、完整报错二、错误原因三、解决方法Debezium从入门到精通系列之:研究Debezium技术遇到的各种错误解决方法汇总: Debezium从入门到精通系列之:百篇系列文章汇总之研究Debezium技…

通过MCP+数据库实现AI检索和分析

通过 MCP&#xff08;Multi-Agent Collaboration Platform&#xff0c;多智能体协作平台&#xff09; 数据库&#xff0c;实现一个AI检索和分析系统。 一、系统目标 实现通过 AI 多智能体对结构化&#xff08;数据库&#xff09;和非结构化&#xff08;文档、文本&#xff09…

【教学类-102-08】剪纸图案全套代码08——Python点状虚线优化版本02(有空隙)+制作1图2图6图24图

背景需求 代码实现了点状虚线的全套流程,但是图片中主体图案和虚线与左右两边粘连。 【教学类-102-07】剪纸图案全套代码07——Python点状虚线优化版本01(无空隙)+制作1图2图6图24图-CSDN博客文章浏览阅读665次,点赞11次,收藏11次。【教学类-102-07】剪纸图案全套代码07…

循环神经网络 - 长短期记忆网络

在之前的博文中&#xff0c;我们介绍了循环神经网络的长程依赖问题及改进方案&#xff0c;可以参考&#xff1a;循环神经网络 - 长程依赖问题及改进方案-CSDN博客 但是改进方案只是可以缓解梯度消失&#xff0c;并不能彻底解决梯度爆炸问题和记忆容量(Memory Capacity)问题。 …

LLM应用开发(七)--记忆

1.LangChain记忆模块 底层原理&#xff1a;在最新一次问题时&#xff0c;带上前面的人机对话历史内容 1.1.具体方式 缓冲记忆 缓冲窗口记忆&#xff08;限定存储会话信息次数&#xff09; 令牌缓冲记忆 摘要总结记忆 摘要缓冲混合记忆 向量存储库记忆