数组的常用遍历方式
# 数组的常用遍历方式
在 Java 中,数组是一个常用的数据结构,可以存储固定长度的元素序列。
# 1. 使用传统 for 循环遍历数组
使用说明:
- 适用场景: 适用于所有类型的数组(如
int[]
、String[]
、Object[]
等)。 - 注意事项: 传统
for
循环适合需要通过索引访问数组元素或进行复杂逻辑处理的场景。
代码示例:
public class TraditionalForLoopExample {
public static void main(String[] args) {
// 创建一个字符串数组
String[] languages = {"Java", "Python", "C++"};
// 使用传统for循环遍历数组
for (int i = 0; i < languages.length; i++) {
// 通过索引获取当前元素
String language = languages[i];
System.out.println("Language: " + language);
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
参数说明:
int i
:循环变量,用于访问数组中的索引。languages[i]
:通过索引获取数组中的元素。
# 2. 使用增强型 for 循环 遍历数组
使用说明:
- 适用场景: 适用于所有类型的数组(如
int[]
、String[]
、Object[]
等)。 - 注意事项: 适用于只读操作的场景,无法在遍历过程中修改数组元素。
代码示例:
public class EnhancedForLoopExample {
public static void main(String[] args) {
// 创建一个字符串数组
String[] languages = {"Java", "Python", "C++"};
// 使用增强型for循环遍历数组
for (String language : languages) {
System.out.println("Language: " + language);
}
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
参数说明:
String language
:循环变量,每次遍历时代表当前元素,类型需与数组元素类型一致。
# 3. 使用 forEach 和 Lambda 表达式遍历数组
使用说明:
- 适用场景: 适用于包装类型数组(如
Integer[]
、String[]
),不适用于基本类型数组(如int[]
)。 - 注意事项: 仅适用于 Java 8 及以上版本,代码简洁,但不支持在遍历过程中修改数组。
代码示例:
import java.util.Arrays;
public class ForEachLambdaExample {
public static void main(String[] args) {
// 创建一个字符串数组
String[] languages = {"Java", "Python", "C++"};
// 使用forEach和Lambda表达式遍历数组
Arrays.stream(languages).forEach(language -> {
System.out.println("Language: " + language);
});
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
参数说明:
Arrays.stream(languages)
:将数组转换为流(Stream)。forEach(language -> {})
:Lambda 表达式处理每个数组元素。
# 4. 使用 Stream API 遍历数组
使用说明:
- 适用场景: 适用于包装类型数组(如
Integer[]
、String[]
),不适用于基本类型数组(如int[]
)。 - 注意事项: 仅适用于 Java 8 及以上版本,适合需要进行复杂数据处理的场景,如过滤、排序等。
代码示例:
import java.util.Arrays;
public class StreamApiExample {
public static void main(String[] args) {
// 创建一个字符串数组
String[] languages = {"Java", "Python", "C++"};
// 使用Stream API遍历数组
Arrays.stream(languages).forEach(language -> {
System.out.println("Language: " + language);
});
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
参数说明:
Arrays.stream(languages)
:将数组转换为流(Stream)。forEach(language -> {})
:使用 Lambda 表达式对每个元素进行处理。
# 5. 使用嵌套 for 循环遍历二维数组
使用说明:
- 适用场景: 适用于所有类型的二维数组(如
int[][]
、String[][]
等)。 - 注意事项: 使用嵌套的
for
循环遍历二维数组时,每个for
循环对应一个维度。
代码示例:
public class TwoDimensionalArrayExample {
public static void main(String[] args) {
// 创建一个二维数组
int[][] numbers = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 使用嵌套for循环遍历二维数组
for (int i = 0; i < numbers.length; i++) { // 遍历每一行
for (int j = 0; j < numbers[i].length; j++) { // 遍历每一列
System.out.println("Element at [" + i + "][" + j + "]: " + numbers[i][j]);
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
参数说明:
int i
:外层循环变量,用于访问二维数组的行索引。int j
:内层循环变量,用于访问二维数组的列索引。numbers[i][j]
:通过行列索引访问二维数组中的元素。
# 6. 数组的遍历方式总结
- 传统
for
循环适合需要基于索引访问数组元素或进行复杂逻辑处理的场景。 - 增强型
for
循环提供了更简洁的语法,适用于所有类型的数组,但仅支持只读操作。 forEach
和Stream
提供了现代化的遍历方式,适合包装类型数组和需要复杂处理的场景。- 嵌套
for
循环是遍历二维数组的常见方式,每个维度对应一个for
循环。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08