目录

  1. Java 数组简介
  2. 声明和初始化数组
  3. 访问数组元素
  4. 多维数组
  5. 增强型 for 循环
  6. 数组的常见操作
  7. Arrays 类的使用
  8. 数组与 ArrayList 对比
  9. 示例代码
  10. 参考资料
  11. 出站链接

1. Java 数组简介

在 Java 中,数组(Array)是一种用于存储固定大小的相同类型元素的容器。数组是对象,因此可以动态分配内存,并使用索引访问每个元素。

特点:

  • 数组的长度是固定的,创建后无法更改大小。
  • 数组中的所有元素类型必须相同(基本数据类型或引用类型)。
  • 通过索引(从 0 开始)访问数组元素。
  • 数组的默认值:
    • intshortbytelong0
    • floatdouble0.0
    • char'\u0000'(空字符)
    • booleanfalse
    • 引用类型 → null

2. 声明和初始化数组

2.1 声明数组

在 Java 中,数组可以使用以下两种方式声明:

数据类型[] 数组名;  // 推荐方式
数据类型 数组名[];  // 兼容 C 语言风格

示例:

int[] numbers;  // 推荐
int numbers[];  // 兼容 C 语言风格

2.2 初始化数组

数组必须在使用前进行初始化,有以下三种方式:

(1)静态初始化(直接赋值)

int[] numbers = {1, 2, 3, 4, 5};  // 创建并初始化

(2)动态初始化(指定大小,默认值填充)

int[] numbers = new int[5];  // 默认值:{0, 0, 0, 0, 0}

(3)同时声明和初始化

int[] numbers = new int[]{1, 2, 3, 4, 5};  // 直接初始化

⚠️注意

int[] numbers;
numbers = {1, 2, 3, 4, 5};  // ❌ 错误:不能单独赋值

必须使用 new 关键字:

numbers = new int[]{1, 2, 3, 4, 5};  // ✅ 正确


3. 访问数组元素

数组元素通过索引(从 0 开始)访问:

int[] numbers = {10, 20, 30, 40, 50};
System.out.println(numbers[0]);  // 输出:10
System.out.println(numbers[4]);  // 输出:50

如果索引超出范围,会抛出 ArrayIndexOutOfBoundsException

System.out.println(numbers[5]);  // ❌ 错误:超出范围


4. 多维数组

Java 支持多维数组(常见的是二维数组),声明方式:

int[][] matrix = new int[3][3];  // 3x3 矩阵

4.1 初始化多维数组

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

4.2 访问多维数组元素

System.out.println(matrix[1][2]);  // 输出:6


5. 增强型 for 循环

Java 提供增强型 for 循环遍历数组:

int[] numbers = {10, 20, 30, 40, 50};
for (int num : numbers) {
    System.out.println(num);
}


6. 数组的常见操作

6.1 复制数组

int[] original = {1, 2, 3};
int[] copy = Arrays.copyOf(original, original.length);

6.2 查找数组元素

int index = Arrays.binarySearch(original, 2);  // 找到 2 的索引

6.3 排序数组

Arrays.sort(original);  // 升序排序


7. Arrays 类的使用

Java Arrays 类提供了许多数组操作方法:

import java.util.Arrays;

int[] arr = {3, 1, 4, 1, 5};
Arrays.sort(arr);  // 排序
System.out.println(Arrays.toString(arr));  // 输出:[1, 1, 3, 4, 5]


8. 数组与 ArrayList 对比

特性数组(Array)ArrayList
长度固定
线程安全
存储类型基本类型 & 对象仅对象
访问速度较慢

9. 示例代码

示例 1:创建并遍历数组

public class ArrayExample {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50};
        for (int num : numbers) {
            System.out.println(num);
        }
    }
}

示例 2:二维数组

public class MultiDimArray {
    public static void main(String[] args) {
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };
        System.out.println(matrix[1][2]);  // 输出:6
    }
}

示例 3:使用 Arrays

import java.util.Arrays;

public class ArrayMethods {
    public static void main(String[] args) {
        int[] arr = {5, 2, 8, 1, 9};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));  // 输出:[1, 2, 5, 8, 9]
    }
}


参考资料


出站链接