Java数组
Java 数组是一种数据结构,用于存储相同数据类型的多个元素。数组在 Java 中是最基础的数据存储方式之一,提供了快速随机访问的能力,适用于需要存储已知数量、相同类型的元素的场景。
# 数组的特点
- 大小固定:数组一旦创建,其大小是固定的,不能动态改变。
- 数据类型一致:数组只能存储相同类型的元素。
- 高效的随机访问:通过索引访问数组元素的速度非常快,时间复杂度为 O(1)。
- 内存连续存储:数组在内存中是连续分配的,因此查询速度快,但在插入和删除时可能会涉及到大量的元素移动。
# 数组的声明与初始化
在 Java 中,数组需要先声明,然后才能初始化。可以在声明时同时初始化,也可以在之后再初始化。
声明数组:
int[] numbers; // 声明一个存储整数的数组 String[] names; // 声明一个存储字符串的数组
初始化数组:
numbers = new int[5]; // 初始化一个长度为 5 的整数数组 names = new String[] {"Alice", "Bob", "Charlie"}; // 初始化一个存储字符串的数组
同时声明并初始化:
int[] scores = {90, 85, 70, 95, 88};
# 多维数组
Java 支持多维数组,最常见的是二维数组,类似于一个矩阵,可以理解为“数组的数组”。
声明与初始化二维数组:
int[][] matrix = new int[3][4]; // 声明并初始化一个 3 行 4 列的二维数组 int[][] predefinedMatrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; // 声明并初始化一个 3x3 的二维数组
# 数组的遍历
可以使用 for
循环或增强型 for-each
循环来遍历数组中的元素。
使用
for
循环:for (int i = 0; i < scores.length; i++) { System.out.println("Score: " + scores[i]); }
使用
for-each
循环:for (int score : scores) { System.out.println("Score: " + score); }
# 数组的常见操作
获取数组长度:可以使用
length
属性获取数组的长度。int length = scores.length; // 获取 scores 数组的长度
复制数组:可以使用
System.arraycopy()
方法来复制数组。int[] copiedScores = new int[scores.length]; System.arraycopy(scores, 0, copiedScores, 0, scores.length);
排序数组:可以使用
Arrays.sort()
方法来对数组进行排序。Arrays.sort(scores); // 对 scores 数组进行升序排序
# 数组的优缺点
优点:
- 数组的访问速度非常快,时间复杂度为 O(1)。
- 在内存中连续存储,效率高。
缺点:
- 大小固定,不能动态调整。
- 在插入和删除元素时,需要移动大量元素,效率低。
# 应用场景
- 存储固定数量的数据:数组适合用于存储长度已知且不会动态变化的数据集,例如一个班级的学生成绩。
- 多维数据的表示:二维数组常用于表示矩阵、棋盘等结构。
上次更新: 2024/10/31, 18:28:18