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

news2024/11/26 11:33:27

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。个人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 : 数组名称num
         System.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.coloradmin.cn/o/1042695.html

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

相关文章

智能回答机器人的“智能”体现在哪里?

人工智能的广泛应用已经成为当今社会科技发展的趋势之一。通过人工智能技术&#xff0c;我们可以在不同领域中实现自动化、智能化和高效化&#xff0c;从而大大提升生产和生活效率。智能回答机器人的出现和使用便能很好的证明这一点。今天我们就来探讨一下智能会打机器人的“智…

全网最全Python系列教程(非常详细)---数值篇讲解(学Python入门必收藏)

&#x1f9e1;&#x1f9e1;&#x1f9e1;这篇是关于Python中数值的讲解&#xff0c;涉及到以下内容&#xff0c;欢迎点赞和收藏&#xff0c;你点赞和收藏是我更新的动力&#x1f9e1;&#x1f9e1;&#x1f9e1; 涉及到&#xff1a; 数值表现形式进制之间的转换常用操作 1 表…

C++与QML交互总结二

目录 1.CPP调用QML 1.1 QMetaObject::invokeMethod调用 1.2 CPP中的信号绑定qml中的槽 2.QML调用CPP 2.1 QML单实例注册 2.2 将类对象注册到QML的上下文中 2.3 QML信号调用CPP槽 3.QML中注入一个cpp实例 3.1qmlRegisterType 3.2QML_ELEMENT 4.附加属性: QML_ATTACHE…

了解MES:提升制造业的效率与竞争力

今天我将和大家分享关于MES&#xff08;Manufacturing Execution System&#xff0c;制造执行系统&#xff09;的知识。随着制造业的发展和变革&#xff0c;MES作为一个关键的信息技术工具&#xff0c;已经成为许多企业提升效率和竞争力的重要策略之一。 MES的定义与作用 MES是…

孟晚舟最新发声!华为吹响人工智能的号角,发布“全面智能化”战略部署

原创 | 文 BFT机器人 1、华为孟晚舟新发声&#xff0c;华为发布“全面智能化”战略 上周三&#xff08;9月30号&#xff09;上午&#xff0c;华为全联接大会2023正式在上海举行&#xff0c;作为华为副董事长、轮值董事长、CFO的孟晚舟代表华为再次发声&#xff01;在演讲上&am…

数值微分比较

对于序列 { x n } x 1 , x 2 , ⋯ , x n \{x_n\} x_1, x_2, \cdots, x_n {xn​}x1​,x2​,⋯,xn​&#xff0c;求其导数 { x n ′ } \{x_n\} {xn′​}。 一、精度 O ( h ) O(h) O(h) x k ′ { x 2 − x 1 h , k 1 x k − x k − 1 h , k 2 , 3 , ⋯ , n x_k \begin{ca…

优化多设备体验,让您的应用为 Samsung 全新设备做好准备

作者 / Android 开发者关系团队总监 Maru Ahues Bouza 从可折叠设备创新到无缝连接&#xff0c;Google 和 Samsung 一直携手合作&#xff0c;致力于打造适用于 Android 手机、平板电脑、智能手表等设备的实用体验。近期&#xff0c;在首尔举行的 Galaxy Unpacked 发布会上&…

权威认可!安全狗获CNVD“漏洞信息报送贡献单位”殊荣

9月24日&#xff0c;国家信息安全漏洞共享平台公布了2022年度CNVD支撑单位年度工作情况及优秀单位个人表彰名单。 作为国内云原生安全领导厂商&#xff0c;安全狗入选漏洞信息报送贡献单位。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;成立于2…

C++,模板 /泛型(添加)

4、非类型函数模板参数 模板元编程是一种通过在编译时执行代码来生成程序的技术。它利用C模板系统的强大功能&#xff0c;在编译阶段进行计算和推导&#xff0c;支持的类型只有整型。 例1&#xff1a; 例2&#xff1a; 可以有默认值,当有多个默认值时&#xff0c;要全部位于最…

BUUCTF刷题十一道(09)

文章目录 October 2019 Twice SQL Injection[GYCTF2020]EasyThinking[BJDCTF2020]EzPHP[HFCTF2020]JustEscape(vm2沙箱逃逸)[GXYCTF2019]StrongestMind[GKCTF 2021]easycms[SUCTF 2018]GetShell[b01lers2020]Life on Mars[WMCTF2020]Make PHP Great Again[MRCTF2020]Ezaudit[CS…

奥迪 Q7 e-tron | 无法通过插电式充电器充电

虽然电动汽车似乎是未来的方向&#xff0c;但插电式混合动力车辆在实现最佳两全之间似乎是当下的主流。这类车辆可以纯电动驾驶&#xff0c;满足当前城市的低排放规定&#xff0c;然而&#xff0c;在内燃机的支持下&#xff0c;我们可以无缝地行驶&#xff0c;充分利用无需担心…

WebDAV之π-Disk派盘 + 纸间书摘

纸间书摘是专为喜欢做读书笔记的小伙伴量身打造的专属书摘app,不仅仅可以从别的app中导入图书,并且还能来帮助你选择性复制可以来轻松的搞定哦 所有功能完全免费,没有广告,不限制识别次数。 多种备份,本地备份和基于WebDAV协议的云端备份。 丰富的书摘导出功能,用户可…

求职应聘,在线测评要不要真实的去做?

求职的朋友们&#xff0c;今年的行情不容乐观&#xff0c;所以要更加努力才能争取到理想的工作岗位。找工作是一个不衰的话题&#xff0c;不仅仅是大学毕业生们&#xff0c;职场人都绕不过去的话题。 如今越来越的企业采用在线测评&#xff0c;在知乎上很多盆友都遇到了&…

多线程的死锁问题

可重入和不可重入&#x1f60a;&#x1f60a;&#x1f60a; 一个线程针对同一个对象,连续加锁两次,是否会有问题 ~~ 如果没问题,就叫可重入的.如果有问题,就叫不可重入的. 代码示例&#x1f349;&#x1f349;&#x1f349;: synchronized public void add(){synchronized (…

Mixin和HTX遭黑客攻击!后者全赔,前者只赔50%引投资者不满?

资产安全一直都是区块链老生常谈的话题&#xff0c;而最近一系列安全事件频发引起了投资者的担忧&#xff0c;先是V神的推特账号被盗&#xff0c;再是亿万富翁马克库班 (Mark Cuban) 的小狐狸钱包被攻击&#xff0c;如今&#xff0c;黑客又盯上了承载大量资金的加密机构。 9月2…

如何提取音频中的纯人声?新手也能快速掌握

在数字媒体时代&#xff0c;无论是音乐、电影还是短视频制作&#xff0c;音频处理都是一个不可或缺的技能&#xff0c;尤其是人声提取部分&#xff0c;今天就来教大家怎样在一段音频中把人声部分提取出来&#xff0c;新手也能快速掌握&#xff01; 第一步&#xff1a;打开【音分…

(手撕)快速排序 ----->c语言实现 +图解

目录 目录&#xff1a; 1:快速排序的思想 2:快速排序的三种形式 3:快速排序的优化方法 前言&#xff1a;快速排序是一种非常重要的排序我们需要掌握它&#xff0c;当然肯定也相比前面的那些排序有一定的难度&#xff0c;但是相信本篇文章会让你对快排有重新的理解&#xff0c;…

vue3 + mark.js | 实现文字标注功能

页面效果 具体实现 新增 1、监听鼠标抬起事件&#xff0c;通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位置。2、通过 选中的文字长度是否大于0或window.getSelection().isCollapsed (返回一个布尔值用于描述选区的起始点和终止点是否位于一个位置&…

TensorFlow入门(三、TensorFlow模型的运行机制)

TensorFlow通过"图"和会话的方式分离了计算的定义和执行,即它的运行机制是"定义"与"运行"相分离的。从操作层面可以把它抽象成两种:模型构建和模型运行。 TensorFlow模型中的几个概念: ①张量(tensor):数据,即某一类型的多维数组 ②变量(Vari…

Wi-Fi直连分享:Android设备间的高速连接

Wi-Fi直连分享&#xff1a;Android设备间的高速连接 引言 随着无线局域网&#xff08;Wi-Fi&#xff09;的普及和发展&#xff0c;使用Wi-Fi直连技术&#xff08;P2P&#xff09;在没有中间接入点的情况下实现设备间直接互联成为可能。通过Wi-Fi直连&#xff0c;具备相应硬件…