Java 数组入门:定义、初始化与遍历详解

一只小鹿
一只小鹿
发布时间:2026-10-16| 6人浏览过
原创

本文详细介绍了 Java 中数组的定义、初始化方式以及遍历技巧。内容涵盖数组的概念、特点、三种定义格式、默认初始值规则,并对比了传统 for、带 length 属性的 for 和增强型 for 循环在遍历数组时的具体用法与注意事项。

数组概述

数组(Array)是 Java 中的一种引用数据类型,用于存储一组相同数据类型的元素。它本质上是一个容器,能够将多个数据集中管理,方便进行批量处理和访问。

数组具有以下显著特点:

  • 长度固定:一旦数组被创建,其长度(即包含的元素个数)就不可改变。
  • 类型一致:数组中的所有元素必须是相同的数据类型,不能混存不同类型(除非使用 Object 或基本类型的包装类/自动装箱机制,但语法上仍视为统一类型)。
  • 支持多态:数组可以存储基本数据类型(如 int, boolean),也可以存储引用数据类型(如 String, 自定义对象)。

数组的定义与初始化

在 Java 中,声明和创建数组主要有以下三种格式:

格式一:动态指定长度

语法结构:元素数据类型[] 数组名 = new 元素数据类型[长度];

int[] a = new int[5];

该方式仅指定数组长度,系统会自动为元素赋予默认初始值。

格式二:静态初始化(全赋值)

语法结构:元素数据类型[] 数组名 = new 元素数据类型[]{元素1, 元素2, ...};

int[] a = new int[]{12, 23, 43};

同时提供数组内容和长度,系统根据提供的元素个数自动确定长度。

格式三:静态初始化(简化版)

语法结构:元素数据类型[] 数组名 = {元素1, 元素2, ...};

int[] a = {12, 23, 43};

这是格式二的简写形式,编译时不需要显式使用 new 关键字,也无需指定长度,但只能在一行声明中使用。

数组访问与默认初始值

数组通过索引(下标)访问元素,索引范围从 0 到 长度-1。创建数组后,元素会根据类型赋予特定的默认初始值,若未手动赋值则保持默认状态。

默认初始值规则

  • 数值型(byte, short, int, long, float, double):默认值为 0 或 0.0。
  • 字符型(char):默认值为 '\u0000'(空字符)。
  • 布尔型(boolean):默认值为 false。
  • 引用类型(String, 对象等):默认值为 null。

代码示例

以下代码展示了 String 数组创建后的默认状态及元素赋值过程:

package shuzu;
public class chushi {
    public static void main(String[] args) {
        // 创建长度为5的String数组,默认值为null
        String[] a = new String[5]; 
        
        // 输出所有元素,结果为 null null null null null
        for(int i = 0; i < 5; i++) {
            System.out.print(a[i] + " ");
        }
        
        // 赋值操作
        a[0] = "Hello";
        a[2] = "World";
        
        // 再次输出验证
        System.out.println();
        System.out.println("a[0]: " + a[0]);
        System.out.println("a[1]: " + a[1]); // 仍为 null
    }
}

读取元素时,直接使用 数组名[索引] 即可将元素赋值给变量或直接打印:

int[] nums = {1, 5, 9, 7, 8};
int first = nums[0];   // 1
int third = nums[2];   // 9

遍历数组的三种方式

遍历是指按顺序访问数组中的每一个元素。以下是三种常见的遍历方式及其适用场景:

第一种:传统 for 循环(硬编码长度)

直接设定循环上限为固定数字。这种方式代码简洁,但若后续修改数组长度而未同步更新循环条件,极易引发 ArrayIndexOutOfBoundsException(数组下标越界异常)。

int[] a = {1, 5, 9, 7, 8};
// 风险点:如果数组长度变为6,这里仍只遍历前5个
for(int i = 0; i < 5; i++) {
    System.out.print(a[i] + " ");
}

第二种:使用 .length 属性(推荐基础做法)

利用数组对象的 .length 属性动态获取长度。无论数组如何变化,都能确保遍历完整且安全,是最常用的标准写法。

for(int i = 0; i < a.length; i++) {
    System.out.print(a[i] + " ");
}

第三种:增强型 for 循环(foreach)

语法:for (元素类型 临时变量 : 数组名)。这种写法最为简洁,无需关心索引起始和终止值,专门用于“只读”遍历或需要处理每个元素的场景。注意:在此循环体内无法直接通过临时变量修改原数组元素的值(对于引用类型除外,可修改对象内部状态,但不能替换数组指向)。

for(int ab : a) {
    System.out.print(ab + " ");
}

综合运行上述三种遍历方式的代码块,控制台输出结果均为:1 5 9 7 8。

以上就是 Java 数组基础知识包括定义、初始化与遍历的详细内容,更多关于 Java 入门教程的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。