主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

Java 数组(Arrays)

Java 数组是 Java 编程语言中最基本且重要的数据结构之一,它用于存储固定大小相同类型元素的顺序集合。

数组在内存中占据一块连续的空间,这种结构使得通过索引访问元素非常高效,时间复杂度为 O(1)。数组的所有元素必须是相同的数据类型,这保证了数据的一致性和类型安全。

虽然现代 Java 开发中经常使用集合框架,但数组由于其高效性和简单性,在许多性能敏感的场景中仍然是首选的数据结构。

Java 数组结构图


如何声明数组?

在 Java 中,数组的声明有多种方式:

java
复制
// 推荐方式
数据类型[] 数组名;

// 也可使用(不推荐)
数据类型 数组名[];

下面给出了数组声明(推荐方式)的演示实例:

java
复制
int[] numbers;          // 整型数组
String[] names;         // 字符串数组
double[] prices;        // 双精度浮点数数组

如何初始化数组?

初始化数组可以分为三种形式:静态初始化数组、动态初始化数组以及先声明后初始化

1. 静态初始化,直接在声明时赋予初始值:

java
复制
int[] numbers = {1, 2, 3, 4, 5};
String[] website = {"Kaicz", "Google", "Baidu"};

2. 动态初始化,使用new关键字指定数组长度:

java
复制
int[] numbers = new int[5];              // 长度为5的整型数组
String[] names = new String[3];          // 长度为3的字符串数组
double[] prices = new double[10];        // 长度为10的双精度数组

3. 先声明后初始化

java
复制
int[] numbers;
numbers = new int[]{1, 2, 3, 4, 5};     // 注意:不能指定长度

访问数组元素

对于这种一维数组,访问数组元素需要通过从0开始的索引值,使用数组名[索引]的语法即可读取特定位置的元素。如果访问不存在的索引,则会抛出ArrayIndexOutOfBoundsException异常。

java
复制
int[] numbers = {10, 20, 30, 40, 50};

System.out.println(numbers[0]);    // 输出: 10
System.out.println(numbers[2]);    // 输出: 30

// 修改元素
numbers[1] = 25;
System.out.println(numbers[1]);    // 输出: 25

1. 数组长度

使用length属性获取数组长度:

java
复制
int[] numbers = {1, 2, 3, 4, 5};
System.out.println("数组长度: " + numbers.length);  // 输出: 5

2. 遍历数组

使用 for 循环结构,通过索引遍历数组的每一个成员:

java
复制
int[] numbers = {1, 2, 3, 4, 5};

for (int i = 0; i < numbers.length; i++) {
    System.out.println("元素 " + i + ": " + numbers[i]);
}

使用 for-each 循环(增强for循环),遍历数组的每一个成员:

java
复制
int[] numbers = {1, 2, 3, 4, 5};

for (int num : numbers) {
    System.out.println(num);
}

Java 多维数组

Java 还支持多维数组,其中最常用的是二维数组。从本质上讲,二维数组可理解为 “数组的数组”。

二维数组的声明和初始化方式与一维数组类似,但需要两个索引来访问元素。对于数组的常见操作,Java 提供了 Arrays 这个工具类,包含排序、查找、复制、比较等实用方法,大大简化了数组操作的复杂度。

下面是简单的二维数组声明和初始化、访问实例:

java
复制
// 声明和初始化二维数组
int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

// 访问元素
System.out.println(matrix[0][1]);  // 输出: 2
System.out.println(matrix[2][2]);  // 输出: 9

// 遍历二维数组
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();
}

这里我们创建了一个名为matrix的多维数组(更具体地说,它是一个二维数组)。如需了解更多信息,请参考 Java 多维数组的相关文档。



评论区 0
发表评论