Skip to content

8.1 数组是什么?有什么用?

数组的概念

数组是一种数据结构,用于存储相同类型的多个元素。在 Java 中,数组是一个固定长度的容器,一旦创建,其长度就不能改变。

数组的特点

  1. 固定长度:数组在创建时必须指定长度,且长度一旦确定就不能改变
  2. 相同类型:数组中的所有元素必须是相同的数据类型
  3. 连续存储:数组中的元素在内存中是连续存储的
  4. 索引访问:数组中的元素通过索引(从 0 开始)进行访问

数组的作用

  1. 存储多个相同类型的数据:当需要存储多个相同类型的数据时,数组是一种方便的选择
  2. 快速访问元素:通过索引可以快速访问数组中的任意元素
  3. 简化代码:使用数组可以避免创建多个变量,简化代码结构
  4. 便于遍历和处理:可以使用循环快速遍历和处理数组中的所有元素

数组的应用场景

  1. 存储一组数据:例如,存储学生的成绩、员工的工资等
  2. 数据排序和搜索:例如,对一组数字进行排序或搜索
  3. 矩阵运算:例如,二维数组可以用于表示矩阵
  4. 作为函数参数:例如,将一组数据传递给函数进行处理
  5. 作为函数返回值:例如,函数可以返回一组数据

数组的类型

基本类型数组

java
// 整型数组
int[] numbers;

// 浮点型数组
double[] prices;

// 字符型数组
char[] characters;

// 布尔型数组
boolean[] flags;

引用类型数组

java
// 字符串数组
String[] names;

// 对象数组
Person[] people;

数组的长度

数组的长度是指数组中元素的个数,在 Java 中可以通过 数组名.length 来获取。

java
int[] numbers = new int[5];
System.out.println("Array length: " + numbers.length); // 输出 5

数组的索引

数组的索引是从 0 开始的整数,用于访问数组中的元素。第一个元素的索引是 0,第二个元素的索引是 1,以此类推。

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

数组的内存结构

在 Java 中,数组是对象,存储在堆内存中。数组变量是引用类型,存储在栈内存中,指向堆内存中的数组对象。

栈内存       堆内存
numbers → [10, 20, 30, 40, 50]

示例:数组的基本使用

java
public class ArrayExample {
    public static void main(String[] args) {
        // 创建一个整型数组
        int[] numbers = new int[5];
        
        // 给数组元素赋值
        numbers[0] = 10;
        numbers[1] = 20;
        numbers[2] = 30;
        numbers[3] = 40;
        numbers[4] = 50;
        
        // 访问数组元素
        System.out.println("First element: " + numbers[0]);
        System.out.println("Last element: " + numbers[4]);
        
        // 获取数组长度
        System.out.println("Array length: " + numbers.length);
        
        // 遍历数组
        System.out.println("Array elements:");
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(numbers[i]);
        }
    }
}

常见问题

1. 数组索引越界

症状:运行时错误:ArrayIndexOutOfBoundsException

解决方案:确保数组索引在有效范围内(0 到 length-1)

2. 空指针异常

症状:运行时错误:NullPointerException

解决方案:确保数组已经初始化,不为 null

3. 数组长度固定

症状:无法动态增加或减少数组长度

解决方案:如果需要动态调整大小,可以使用集合类(如 ArrayList)

总结

数组是 Java 中一种重要的数据结构,用于存储相同类型的多个元素。它具有固定长度、相同类型、连续存储和索引访问等特点。

数组的主要作用包括:

  • 存储多个相同类型的数据
  • 快速访问元素
  • 简化代码
  • 便于遍历和处理

在使用数组时,需要注意数组索引越界、空指针异常等问题。如果需要动态调整大小,可以使用集合类(如 ArrayList)。

© 2026 编程马·菜鸟教程 版权所有