当前位置: 首页 > news >正文

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

相关文章:

  • LEARNING DYNAMICS OF LLM FINETUNING【论文阅读笔记】
  • 如何深入理解protobuf
  • 小型实验室数控机床-迷你型数控加工中心|CNC数控车床
  • 软考 中级软件设计师 考点知识点笔记总结 day11 文件管理 设备管理
  • 51电子表
  • AI 之 LLM(大语言模型)是如何生成文本的!
  • 力扣经典算法篇-11-除自身以外数组的乘积(总乘积求除法,左右乘积法)
  • 探索 C++ 中的 const 关键字
  • 美食推荐小程序
  • OpenFeign 的实现原理详解
  • 探索在视频深度伪造中的细微的表情变化或对特定面部特征的小改动检测方法
  • 使用numpy构建逻辑回归模型及训练流程
  • 关于哈希冲突的讨论
  • TDOA定位算法核心优势解析(2025年更新)
  • 【Java面试系列】Spring Cloud微服务架构中的分布式事务实现与性能优化详解 - 3-5年Java开发必备知识
  • netty中的ChannelHandler详解
  • 【DB2】备份失败SQL1762N
  • python相关面试题
  • 算法系列——无监督学习——15.混合高斯分布
  • 光学工程考研调剂推荐
  • 惠州网站建设/河南做网站的公司
  • 合肥做公司网站一般多少钱/福清网络营销
  • 搜索引擎网站建设/seo外链在线工具
  • 个人网站可以做百度推广/品牌营销策略分析
  • 云南网站建设哪个好/杭州seo营销
  • 网络推广方案策划/网络营销优化培训