Java 数组怎么遍历

在日常写代码时,我们经常需要把一串数据里的内容一个一个“揪”出来处理——比如打印所有用户的名字、计算一组商品的总价,这时候就会用到“遍历”。如果这些数据是用Java数组存的,那怎么实现遍历呢?

最基础的入门:for循环遍历

刚学Java的人,最先接触的肯定是普通for循环,这也是数组遍历里最常用、最好理解的一种方式。简单说,就是给数组的每个位置编上号(Java数组的编号从0开始,不是从1哦),然后用循环按顺序把每个编号对应的内容取出来。

Java 数组怎么遍历

举个生活化的例子:把数组想象成一排挂在墙上的挂钩,每个挂钩上挂着一件衣服,挂钩从左到右编号0、1、2、3……要数每一件衣服,就从最左边的0号挂钩开始,挨个摸到最后一个挂钩。Java里写的话,就是先算数组总共有多少个元素(用数组名.length就能得到),然后让循环从0开始,每次加1,直到数到比总元素数少1的位置就停下,这样就能把每个挂钩的衣服都处理到了。比如要打印一组成绩:

`java

int[] scores = {85, 92, 78, 90};

// i就是挂钩的编号,从0到3(总共有4个元素)

for (int i = 0; i < scores.length; i++) {

System.out.println("第" + (i+1) + "个成绩是:" + scores[i]);

}

`

这段代码跑起来,就会按顺序把所有成绩都打印出来,不会漏也不会重复。

偷懒小技巧:增强for循环(for-each)

如果不需要用到挂钩的编号(比如刚才的成绩例子,我们只是要打印内容,不需要知道是第几个),那还有更简单的方式,就是增强for循环,也叫for-each。它就像你不用管挂钩的编号,直接把所有衣服一件一件拿下来,不用操心位置,只管拿就行。

还是用成绩的例子,换成增强for循环的写法:

`java

int[] scores = {85, 92, 78, 90};

// 把数组里的每个元素,依次放到临时变量score里,每次循环拿一个

for (int score : scores) {

System.out.println("成绩是:" + score);

}

`

这种写法代码更短,不容易写错,也不用记编号的范围,适合只需要处理数组内容、不需要用到下标的场景。不过它也有小缺点:如果后续需要知道当前是第几个元素(比如要统计“满分是100,找出第一个满分的位置”),那增强for循环就做不到了,得用回普通for循环。

进阶需求:带下标的遍历(搭配遍历工具类)

有时候我们既想要方便,又想用到下标,比如要给数组里的所有元素加10分,同时要知道每个元素的位置,这时候可以结合普通for循环和下标,或者用Java自带的Arrays工具类里的方法,比如parallelPrefix,不过对新手来说,普通for循环已经足够应对大部分情况了。

还有一种特殊场景:如果数组是对象类型的,比如存的是学生姓名的字符串数组,遍历的逻辑也是一样的,只是把int换成String就行,比如:

`java

String[] names = {"张三", "李四", "王五"};

for (int i = 0; i < names.length; i++) {

System.out.println("第" + (i+1) + "个同学:" + names[i]);

}

`

不管数组里存的是数字、字符串还是自定义的对象,遍历的核心逻辑都是一样的——按顺序把每个元素取出来处理,只是变量类型换了而已。

其实数组遍历本质上就是“按顺序访问所有元素”,选哪种方式完全看需求:需要下标就用普通for循环,只需要内容就用增强for循环,不用纠结哪种更好,适合当前场景的就是最好的。

上一篇 Swift语言核心特性与应用场景的知识科普讲解