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

增强for循环和一般for循环的对比使用

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。个人B站主页热爱技术的小郑 ,视频内容主要是对应文章的视频讲解形式。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。

                                                                              热爱技术的小郑

1、增强版和普通版对比

一般for循环

    int[] num = {1,2,3,4,5,6};for(int i =  0 ; i<num.length ; i++){ System.out.println("元素:"+ num[i]); } 

增强for循环

	 int[] num = {1,2,3,4,5,6};for(int i :num){   //集合或数组a : 数组名称numSystem.out.println("元素:"+ i); } 

使用增强for循环的优点:

  • 增强 for 循环的作用是简化集合或数组的遍历操作,减少编写代码的工作量 增加代码的可读性和可维护性。使用增强 for 循环可以避免使用传统的 for 循环的索引变量,使代码更简洁、清爽,并且可以 避免数组越界等常见问题。

  • 增强 for 循环最大的好处是在语法层面上提供了一种 更简单、更直观的集合遍历方式 ,使得代码变得更加简单、易读、易写,从而提高了编码效率和代码可维护性。

  • 需要注意的是,增强 for 循环只能用于遍历集合或数组中的元素, 无法用于修改集合或数组中的元素。如果需要修改集合或数组中的元素,仍然需要使用传统的 for 循环或迭代器等方法。

2、什么是增强for循环?

增强for循环 (也称for each循环) 是迭代器遍历方法的一个“简化版”,是JDK1.5以后出来的一个高级for循环 专门用来遍历数组和集合。

其内部原理是一个Iteration迭代器,在遍历数组/集合的过程中,不能对集合中的元素进行增删操作。

3、增强for循环的使用(语法)

1.使用范围:用来遍历集合和数组(必须有遍历目标,目标只能是集合或者数组),所有单列表集合都可以使用增强for循环。
  2.格式如下:

for(ElementType element: arrayName) 
{ //集合或数组的数据类型 变量名:集合名/数组名System.out.println(变量名)};

4、实际应用

4.1 遍历数组

普通的一般 for 使用

    /*** 力扣  移除数组中的指定元素* @param nums* @param val* @return*/public static int removeElement(int[] nums, int val) {int [] mynums = new int[nums.length];int rs = 0;for(int i = 0; i < nums.length; i++){if(nums[i] != val){mynums[rs] = nums[i];rs ++;}}return mynums.length;}

使用增强 for 循环

    /*** 增强for循环* @param nums* @param val*/public static void test(int [] nums,int val){int rs = 0;for(int num : nums){if(num != val){nums[rs] = num;rs ++;}}}

4.2 遍历数组对象

遍历数组对象,通过对象访问对象的属性值。

    /*** 对象循环* @param students*/public static void testObject(Student [] students){for(Student student : students){System.out.println("姓名:" + student.name + ",年龄:" + student.age);}}public static void main(String[] args) {Student  student1 = new Student("张三1",18);Student  student2 = new Student("张三2",19);Student  student3 = new Student("张三3",20);Student  student4 = new Student("张三4",21);//组合数组对象Student [] students = {student1, student2, student3, student4};Solution.testObject(students);}//学生类
class Student{String name;int age;Student(){}Student(String name, int age){this.name = name;this.age = age;}public int getAge() {return age;}public String getName() {return name;}public void setAge(int age) {this.age = age;}public void setName(String name) {this.name = name;}
}

在这里插入图片描述

http://www.lryc.cn/news/176062.html

相关文章:

  • 云原生之使用Docker部署RSS阅读器Huntly
  • Powershell 实现禁用密码复杂性,空密码
  • 【c语言】详解动态内存管理
  • 深度学习概念——端对端
  • 苹果触控笔有必要买吗?平价ipad电容笔推荐
  • React的高阶函数
  • Java8实战-总结34
  • uniapp项目实践总结(二十四)安卓平台 APP 打包教程
  • GeoServer地图服务器权限控制
  • Python+requests+unittest+excel实现接口自动化测试框架
  • 25807-2020 间脲基苯胺盐酸盐 课堂随笔
  • 苹果手机通讯录联系人如何一键删除? 1个方法轻松解决!
  • 【Linux成长史】Linux编辑器-gcc/g++使用
  • 【CNN-FPGA开源项目解析】卷积层03--单格乘加运算单元PE 单窗口卷积块CU 模块
  • 一文教你学会ArcGIS Pro地图设计与制图系列全流程(2)
  • ICML 2017: 基于卷积的Seq2Seq解决方案
  • 探索GmSSL+Nginx实践及原理
  • Mybatis框架学习
  • 基于微信小程序的电影院订票系统设计与实现(源码+lw+部署文档+讲解等)
  • LeetCode-热题100-笔记-day32
  • STP生成树协议基本配置示例---STP逻辑树产生和修改
  • Java版企业电子招标采购系统源码—企业战略布局下的采购寻源
  • 华纳云:SQLserver配置远程连接的方法是什么
  • CryptoCTF easy
  • 计算机视觉技术的革新:医疗领域的应用
  • python找出文件夹里文件名以特定字符结尾的文件并移动到另一个目录
  • 面试官问:大量的 TIME_WAIT 状态 TCP 连接,对业务有什么影响?怎么处理?
  • 前端就业宝典---目录
  • Uniboot 系列光纤跳线简介
  • 【面试题】Promise只会概念远远不够,还需这17道题目巩固!