当前位置:首页 > 后端开发 > 正文

Java如何获取数组长度?

在Java中,通过数组对象的length属性获取长度,如arr.length,该属性直接返回数组元素数量,无需调用方法,数组长度固定不变,创建时即确定。

在Java中,判断数组的长度是一个基础但关键的操作,数组长度在遍历元素、避免越界错误或动态处理数据时至关重要,下面详细说明具体方法及注意事项:

核心方法:使用 length 属性

Java为所有数组提供了内置的 length 属性,直接返回数组的元素数量(整数),语法如下:

int length = arrayName.length;

特点

Java如何获取数组长度?  第1张

  • 是属性(property),不是方法,不加括号
  • 适用于任何类型的数组(int[], String[], 自定义对象数组等)。
  • 时间复杂度为 O(1),直接读取无需计算。

示例代码(一维数组):

String[] fruits = {"Apple", "Banana", "Orange"};
int len = fruits.length;  // 正确:使用 length 属性
System.out.println("数组长度: " + len); // 输出:3

多维数组的长度判断

多维数组的 length 属性返回第一维的长度,若需获取其他维度长度,需逐级访问:

int[][] matrix = {{1, 2}, {3, 4, 5}, {6}};
int firstDim = matrix.length;     // 第一维长度:3
int secondDim = matrix[0].length; // 第二维第一个数组长度:2
int thirdDim = matrix[1].length;  // 第二维第二个数组长度:3

常见错误与避坑指南

  1. 混淆字符串与数组

    • 数组用 array.length(属性),字符串用 str.length()(方法),错误示例:
      String str = "Hello";
      int wrongLen = str.length;   // 编译错误!字符串必须用 length()
  2. 空指针异常(NullPointerException)

    • 未初始化的数组调用 length 会报错:
      int[] arr = null;
      int len = arr.length; // 抛出 NullPointerException
    • 解决方案:始终检查数组是否为 null
      if (arr != null) {
          int safeLen = arr.length;
      }
  3. 数组长度不可变

    • 数组一旦创建,长度固定,修改长度需创建新数组:
      int[] arr = new int[5];
      arr = Arrays.copyOf(arr, 10); // 新数组长度为10

为什么数组用属性而非方法?

  • 设计原理:Java将数组视为特殊对象,length 作为内置属性,保证高效访问(无需方法调用开销)。
  • 对比集合类:集合(如 ArrayList)需用 size() 方法,因长度动态变化。

实际应用场景

  1. 遍历数组
    for (int i = 0; i < fruits.length; i++) {
        System.out.println(fruits[i]);
    }
  2. 安全操作数组
    if (fruits.length > 0) {
        System.out.println("第一个元素: " + fruits[0]);
    }
  • 核心操作:用 数组名.length 直接获取长度。
  • 关键区别:数组用属性 length,字符串用方法 length()
  • 注意事项:检查 null、区分多维数组维度、长度不可变。

引用说明依据 Oracle 官方 Java 文档中关于数组的定义,参考《Java 语言规范》对数组对象的说明,示例代码遵循 Java SE 标准语法,已在 JDK 8+ 环境验证。
参考资料:
Oracle Java Arrays Tutorial
Java Language Specification: Arrays

0