不可不知的Java SE技巧:如何使用for each循环遍历数组

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

  在Java SE开发中,数组是最常见的数据结构之一。Java提供了多种遍历数组的方式,其中for循环是最常用的方式之一。然而,使用for循环遍历数组代码冗长,并且易出错。为了解决这个问题,Java SE引入了for each循环,可以更简单、更直观地遍历数组。

摘要

  本文将介绍如何使用for each循环遍历数组。首先,我们将学习for each循环的语法和用法。接下来,我们将通过一个简单的代码示例来展示如何使用for each循环遍历数组。然后,我们将分析for each循环的优缺点和适用场景。最后,我们将提供一个类代码方法介绍和测试用例,以帮助您更好地理解for each循环。

正文

简介

  for each循环是Java SE 5中引入的一种简化数组遍历的语法。它比传统的for循环更简洁、更易读,可以帮助开发者更好地管理数组。

  for each循环的语法如下所示:

for (type variable : array) {//code
}

  其中,type为数组元素的数据类型,variable为循环内部的一个变量名,array为需要遍历的数组。
代码分析:

  这是一个foreach循环,用于遍历一个数组,每次循环将数组中的元素赋值给变量。循环执行过程中,变量将依次取到数组中的每一个元素,然后执行循环体内的代码。

源代码解析

  下面通过一个代码示例来展示如何使用for each循环遍历数组。

public class ForEachLoopDemo {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};for (int number : numbers) {System.out.println(number);}}
}

  在上面的代码中,首先定义了一个整型数组numbers。然后,使用for each循环遍历整个数组,并打印每个元素的值。

代码运行预期结果如下:

1
2
3
4
5

  从结果可以看出,for each循环可以轻松地遍历数组,并且代码更加简洁易懂。

代码分析:

  这段代码演示了Java中的for-each循环,也称作增强型for循环。

  首先,声明了一个整型数组numbers,包含了5个元素。

  然后,使用for-each循环遍历整个数组。在循环中,声明了一个名为number的整型变量,每次循环都会自动更新为数组中的下一个元素。循环体中的语句是打印当前的number变量。

  最终运行该程序,将输出如下结果:

1
2
3
4
5

  这表明for-each循环可以更简便地遍历数组,使代码更易读、更易理解。

应用场景案例

  for each循环适用于需要遍历整个数组并对每个元素执行相同操作的场景。下面是一些使用for each循环的实际场景:

  1. 遍历数组并计算元素的总和或平均值。
  2. 在数组中查找特定元素。
  3. 对数组进行排序或过滤。
  4. 打印所有数组元素。
  5. 将数组元素转换为另一种数据类型。

优缺点分析

  for each循环的优点包括:代码简洁易读、遍历数组速度快、易于避免数组越界错误。

  for each循环的缺点包括:无法访问元素的下标、无法修改数组中的元素。

  因此,在需要修改数组元素或访问元素下标时,应该使用传统的for循环。

类代码方法介绍

  以下是ForEachLoopDemo类的代码,其中包含一个名为sum的方法,该方法使用for each循环计算数组元素的总和。

package com.example.javase.se.array;/*** @Author ms* @Date 2023-11-16 18:25*/
public class ForEachLoopTest {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};int sum = sum(numbers);System.out.println("Sum of array elements is " + sum);}public static int sum(int[] array) {int sum = 0;for (int number : array) {sum += number;}return sum;}
}

  在上面的代码中,sum方法使用for each循环遍历整个数组,并计算所有元素的总和。然后,该方法返回总和。

测试结果

  根据如上测试用例,本地测试结果如下,仅供参考,你们也可以自行修改测试用例或者添加更多的测试数据或测试方法,进行熟练学习以此加深理解。

测试代码分析

  根据如上测试用例,在此我给大家进行深入详细的解读一下测试代码,以便于更多的同学能够理解并加深印象。
  这是一个Java程序,主要用于演示使用 for-each 循环(也称为增强型 for 循环)来迭代遍历数组并计算其元素的总和。 代码中声明了一个名为 ForEachLoopTest 的类,该类包括了一个 main() 方法和一个名为 sum() 的静态方法。 在 main() 方法中声明了一个整型数组 numbers,该数组包含 5 个元素。接下来,调用 sum() 方法并传递数组 numbers 作为参数,该方法返回数组元素的总和,然后打印输出该总和。

  在 sum() 方法中,首先定义一个整型变量 sum 并初始化为 0,然后使用 for-each 循环遍历传递进来的数组 array,将每个元素累加到变量 sum 中。最后,返回变量 sum 的值。

  总的来说,该程序演示了如何使用 for-each 循环来遍历数组,并计算其中元素的总和,这是在实际编程中非常常见的操作。

测试用例

  以下是ForEachLoopDemo类的测试用例,使用main函数进行测试。

测试代码演示

package com.example.javase.se.array;/*** @Author ms* @Date 2023-11-16 18:25*/
public class ForEachLoopDemoTest {public static void main(String[] args) {testSum();}public static void testSum() {int[] numbers = {1, 2, 3, 4, 5};int expectedSum = 15;int sum = ForEachLoopTest.sum(numbers);if (sum == expectedSum) {System.out.println("testSum PASSED");} else {System.out.println("testSum FAILED");}}
}

  在上面的代码中,testSum方法调用ForEachLoopDemo类中的sum方法,并检查计算的总和是否等于预期总和。

测试结果

  根据如上测试用例,本地测试结果如下,仅供参考,你们也可以自行修改测试用例或者添加更多的测试数据或测试方法,进行熟练学习以此加深理解。

测试代码分析

  根据如上测试用例,在此我给大家进行深入详细的解读一下测试代码,以便于更多的同学能够理解并加深印象。
  该代码是一个测试类,包含了一个static方法testSum()用于测试ForEachLoopTest类中的sum()方法的正确性。在testSum()方法中定义了一个int类型的数组numbers,和一个int类型的变量expectedSum,然后使用ForEachLoopTest的sum()方法对numbers数组进行求和操作,并将求和结果赋值给sum变量。

  最后,利用if语句判断sum是否等于expectedSum,如果相等则输出“testSum PASSED”,否则输出“testSum FAILED”。

全文小结

  在Java SE开发中,for each循环是一种简化数组遍历的语法。它可以帮助开发者更好地管理数组,代码更加简洁易懂。for each循环适用于需要遍历整个数组并对每个元素执行相同操作的场景。它的优点包括代码简洁易读、遍历数组速度快、易于避免数组越界错误。它的缺点包括无法访问元素的下标、无法修改数组中的元素。在需要修改数组元素或访问元素下标时,应该使用传统的for循环。

总结

  本文介绍了如何使用for each循环遍历数组。我们学习了for each循环的语法和用法,并通过一个简单的代码示例展示了如何使用它来遍历数组。我们还分析了for each循环的优缺点和适用场景,并提供了一个类代码方法介绍和测试用例,以帮助您更好地理解for each循环。我们希望本文能够帮助您更好地管理数组,并提高Java SE开发的效率。

… …

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

… …

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

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

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

相关文章

HTML+CSS 旋转呼吸加载器

效果演示 实现了一个旋转加载动画效果,包括一个圆形的加载框和两个不同颜色的圆形旋转动画。加载框和动画都使用了CSS的动画属性,实现了旋转和缩放的效果。整个加载动画的样式比较简单,使用了黑色和黄色的背景色,以及白色的文本颜…

基于SVD的点云配准(下)

点云配准及特征提取详细解读 本篇博客将介绍一个用于点云配准的 C++ 代码示例,该示例使用 PCL(Point Cloud Library)库来处理和配准两个点云数据集。我们将逐步解析代码的关键部分,并解释每个步骤的作用。 代码说明 代码的整体结构及其主要功能: int main(int argc, ch…

【C++】【期末考】【基本概念和语法】概括总结——期末速成

目录 1. C简介 C的历史与发展 C的特点与优势 2. 基本语法 注释 数据类型与变量 常量 运算符 输入与输出 3. 控制结构 条件语句 循环语句 4. 函数 函数定义与声明 参数传递 返回值 函数重载 5. 数组与字符串 一维数组 多维数组 字符串处理 6. 指针 指针的…

本地部署 Stable Diffusion3

6月13日,Stability AI 正式开源20亿参数版本的Stable Diffusion 3 Medium。本文将在本地部署 SD3,GPU配置如下 GPU 2080TI / 22G 安装依赖 修改 WORKSPACE 位置信息,安装ComfyUI # #title Environment Setupfrom pathlib import PathOPTIO…

PHP 命名空间

PHP 命名空间 PHP命名空间是一种组织代码的结构,它允许开发者在PHP代码中避免类、函数或常量名称的冲突。在PHP中,命名空间通过namespace关键字来声明。使用命名空间,可以在不同的代码库或项目中使用相同的类名,而不会产生冲突。 命名空间的基本概念 在PHP中,命名空间类…

决策树算法介绍:原理与案例实现

一、引言 决策树是一种常用于分类和回归任务的机器学习算法,因其易于理解和解释的特点,在数据分析和挖掘领域有着广泛应用。本文将介绍决策树算法的基本原理,并通过一个具体案例展示如何实现和应用该算法。 二、决策树算法原理 1. 决策树结…

SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ?

本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC。 提示: 为了方便大家索引,特将在上篇文章 《以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的》 中讨论的众多主题独立出来。 大家在网上或者在其他讲解 JVM 的书籍中多多少少…

C++ 取近似值

描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。 数据范围:保证输入的数字在 32 位浮点数范围内 输入描述: 输入一个正…

关于QTcreator,19年大学时写的文章了,之前写在印象笔记现在拉过来,往事如烟呐

1.初来乍到,先按照书本写一个基础列程理解一下原理。 这里创建工程的时候选择Qdialog基类,dialog.h头文件,并且勾选了创建界面 (勾选之后可以通过手动添加组块并且可以自生成他们的函数定义,如果没有勾选,…

Mybatis源码解析

MybatisAutoConfiguration或者MybatisPlusAutoConfiguration核心作用是初始化工厂类SqlSessionFactory,其中包含属性interceptors、MapperLocations、TypeAliasesPackage、TypeEnumsPackage、TypeHandlers等。 MybatisAutoConfiguration自动装配类是由依赖&#xf…

聊天页面样式

聊天页面样式 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><link rel"styleshee…

C++程序员笔试训练

面试题1&#xff1a;使用库函数将数字转换位字符串 考点&#xff1a;c语言库函数中数字转换位字符串的使用 char *gcvt(double number, int ndigit, char *buf);参数说明&#xff1a; number&#xff1a;待转换的double类型数值。 ndigit&#xff1a;保留的小数位数。 buf&am…

数智教育创新如何向未来?腾讯云与你探索革新之路

引言 随着科技革命的快速发展&#xff0c;掀起教育领域的变革&#xff0c;新理念、新技术、新模式、新应用正不断涌现&#xff0c;正塑造着教育的未来形态。未来科技还将如何赋能教育创新&#xff1f; 5月31日&#xff0c;由腾讯云TVP 与西安电子科技大学联合举办的「数智教育的…

LC1020:飞地的数量

题目 给你一个大小为 m x n 的二进制矩阵 grid &#xff0c;其中 0 表示一个海洋单元格、1 表示一个陆地单元格。 一次 移动 是指从一个陆地单元格走到另一个相邻&#xff08;上、下、左、右&#xff09;的陆地单元格或跨过 grid 的边界。 返回网格中 无法 在任意次数的移动…

Spark 面试题(十一)

1. 简述reduceByKey和groupByKey的区别和作用 &#xff1f; reduceByKey和groupByKey是Spark中的两种用于处理键值对&#xff08;Key-Value Pairs&#xff09;RDD的转换操作&#xff0c;它们在功能和性能上有一些关键的区别&#xff1a; groupByKey 作用&#xff1a;groupBy…

C++访问Private,Protecd的一些方法总结

前言 在编写C程序中 我们偶尔会碰到这样的三种特殊修改变量值的需求&#xff1a; [1]在不修改类原本的实现下&#xff0c;访问修改类的Private变量 [2]在不修改类原本的实现下&#xff0c;修改类的Protected变量 Private变量访问 public类模版函数特化 这种办法利用了类模…

springboot使用webscoket

springboot添加config配置项 package cn.lsy.api.yuy.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter;Configur…

CMS与AI的融合:构建万能表单小程序系统

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;MyCMS作为一款功能强大的内容管理系统&#xff0c;通过集成AI技术&#xff0c;进一步拓展了其应用范围和智能化水平。本文将探讨如何利用MyCMS结合AI技术&#xff0c;构建一个能够将用户提交的万能表单数据转化为智能提…

helm命令如何修改values.yaml里面的变量值

在使用 Helm 安装 chart 的时候&#xff0c;你有几种方法可以在安装时修改 values.yaml 中的值&#xff0c;以便自定义安装。这些方法让你无需直接编辑 chart 包中原始的 values.yaml 文件&#xff1a; 1. 使用 --values 或 -f 参数指定自定义 values 文件 你可以创建一个自定…

【Ardiuno】实验使用ESP32单片机根据光线变化控制LED小灯开关(图文)

今天小飞鱼继续来实验ESP32的开发&#xff0c;这里使用关敏电阻来配合ESP32做一个我们平常接触比较多的根据光线变化开关灯的实验。当白天时有太阳光&#xff0c;则把小灯关闭&#xff1b;当光线不好或者黑天时&#xff0c;自动打开小灯。 int value;void setup() {pinMode(34…