前言
数组(Array)是 Java 中最基本的数据结构之一,它用于存储相同类型的元素,并且在内存中是连续存储的。数组具有高效的索引访问特点,但长度固定,不能动态调整。
本文将介绍数组的基本概念、声明和初始化方式、常见操作,并提供示例代码。
1. 数组的声明与初始化
1.1 声明数组
在 Java 中,数组可以使用以下语法声明:
数据类型[] 数组名; // 推荐写法
数据类型 数组名[]; // 兼容 C 语言风格
示例:
int[] numbers;
String[] names;
1.2 初始化数组
Java 提供了多种方式初始化数组。
1.2.1 静态初始化
int[] numbers = {1, 2, 3, 4, 5};
String[] names = {"Alice", "Bob", "Charlie"};
1.2.2 动态初始化
int[] numbers = new int[5]; // 分配 5 个元素的空间,默认值为 0
String[] names = new String[3]; // 分配 3 个元素的空间,默认值为 null
1.2.3 逐个赋值
int[] numbers = new int[3];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
2. 遍历数组的不同方式
2.1 使用 for
循环遍历
int[] numbers = {10, 20, 30, 40};
for (int i = 0; i < numbers.length; i++) {
System.out.println("Index " + i + ": " + numbers[i]);
}
2.2 使用 for-each
循环遍历(增强 for 循环)
for (int num : numbers) {
System.out.println(num);
}
2.3 使用 Arrays.toString()
输出数组
import java.util.Arrays;
public class ArrayExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(numbers));
}
}
输出:
[1, 2, 3, 4, 5]
3. 多维数组
Java 还支持多维数组,如二维数组。
3.1 二维数组的声明与初始化
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
或者:
int[][] matrix = new int[3][3]; // 3 行 3 列
matrix[0][0] = 1;
matrix[0][1] = 2;
3.2 遍历二维数组
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
4. 数组的常见操作
4.1 数组排序(Arrays.sort()
)
import java.util.Arrays;
public class SortExample {
public static void main(String[] args) {
int[] numbers = {5, 2, 9, 1, 6};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));
}
}
输出:
[1, 2, 5, 6, 9]
4.2 数组复制(Arrays.copyOf()
)
int[] original = {1, 2, 3};
int[] copy = Arrays.copyOf(original, 5); // 扩展到 5 个元素
System.out.println(Arrays.toString(copy));
输出:
[1, 2, 3, 0, 0]
4.3 数组填充(Arrays.fill()
)
int[] arr = new int[5];
Arrays.fill(arr, 10);
System.out.println(Arrays.toString(arr));
输出:
[10, 10, 10, 10, 10]
5. 数组 vs. 集合(List)
特性 | 数组(Array) | 集合(List) |
---|---|---|
长度是否可变 | ❌ 否 | ✅ 是 |
是否支持泛型 | ❌ 否 | ✅ 是 |
访问速度 | ✅ 快 | ❌ 略慢 |
插入/删除 | ❌ 低效 | ✅ 高效 |
线程安全 | ❌ 非线程安全 | ❌ 非线程安全(ArrayList ) |
6. 结语
Java 数组是最基本的数据结构之一,提供高效的索引访问,但长度固定。在需要动态扩展的情况下,建议使用 ArrayList
这样的集合类。
如果觉得这篇博客对你有帮助,记得点赞 ⭐、收藏 📌、关注 🚀!