Java一维数组的创建和使用(新手必看)
在 Java 中,一维数组实质上是一组相同类型的数据的线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以应用这种类型的数组。
一维数组的创建有两种形式。
声明一维数组,代码如下:
在为数组分配内存空间时必须指明数组的长度。为数组分配内存空间的语法格式如下:
通过上面的语法可知,使用 new 关键字为数组分配内存时,必须指定数组元素的类型和数组元素的个数,即数组的长度。
为数组分配内存,代码如下:

图 1 一维数组的内存模式
在图 1 中,arr 为数组名称,方括号“[ ]”中的值为数组的下标。数组通过下标来区分数组中不同的元素。数组的下标是从 0 开始的。由于创建的数组 arr 中有 5 个元素,因此数组中元素的下标为 0~4。
注意,使用 new 关键字为数组分配内存时,整型数组中各个元素的初始值都为 0。
数组的初始化有以下两种方式:
第一种初始化方式将创建 5 个元素的数组,其元素依次为 1、2、3、4、5。第二种初始化方式会创建 4 个元素的数组,其元素依次为 23、24、12、6。
【实例】使用一维数组输出 1~12 月每个月份的天数。
在项目中创建 GetDay 类,在主方法中创建并初始化一个用于存储 1~12 月每个月份天数的 int 型数组,在控制台上输出 1~12 月每个月份的天数。实例代码如下:
Java一维数组的创建
数组作为对象允许使用 new 关键字进行内存分配。在使用数组之前,必须首先定义数组变量所属的类型。一维数组的创建有两种形式。
1) 先声明,再用new关键字进行内存分配
声明一维数组有下列两种方式:数组元素类型 数组名字[ ]; 数组元素类型[ ] 数组名字;
- 数组元素类型决定了数组的数据类型,它可以是 Java 中任意的数据类型,包括简单类型和组合类型;
- 数组名字为一个合法的标识符,符号“[ ]”指明该变量是一个数组类型变量;
- 单个“[ ]”表示要创建的数组是一个一维数组。
声明一维数组,代码如下:
int arr[]; // 声明 int 型数组,数组的每个元素都是 int 整数值声明数组后,还不能立即访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,要想真正使用数组,还要为它分配内存空间。
在为数组分配内存空间时必须指明数组的长度。为数组分配内存空间的语法格式如下:
数组名字 = new 数组元素的类型[数组元素的个数];
- 数组名字:被连接到数组变量的名称;
- 数组元素的个数:指定数组中变量的个数,即数组的长度。
通过上面的语法可知,使用 new 关键字为数组分配内存时,必须指定数组元素的类型和数组元素的个数,即数组的长度。
为数组分配内存,代码如下:
arr = new int[5];以上代码表示要创建一个含有 5 个元素的整型数组,并且将创建的数组对象赋给引用变量 arr,即通过引用变量 arr 来引用这个数组,如下图所示:

图 1 一维数组的内存模式
在图 1 中,arr 为数组名称,方括号“[ ]”中的值为数组的下标。数组通过下标来区分数组中不同的元素。数组的下标是从 0 开始的。由于创建的数组 arr 中有 5 个元素,因此数组中元素的下标为 0~4。
注意,使用 new 关键字为数组分配内存时,整型数组中各个元素的初始值都为 0。
2) 声明的同时为数组分配内存
这种创建数组的方法是将数组的声明和内存的分配合在一起执行。语法如下:数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数];声明并为数组分配内存,代码如下:
int month[] = new int[12];上面的代码创建数组 month,并指定了数组长度为 12。这种创建数组的方法也是 Java 程序编写过程中普遍的做法。
一维数组的初始化
数组与基本数据类型一样可以进行初始化操作。数组的初始化可分别初始化数组中的每个元素。数组的初始化有以下两种方式:
int arr[] = new int[]{1,2,3,4,5}; int arr2[] = {23,24,12,6};从中可以看出,数组的初始化就是包括在大括号之内用逗号分开的表达式列表。用逗号(,)分割数组中的各个元素,系统自动为数组分配一定的空间。
第一种初始化方式将创建 5 个元素的数组,其元素依次为 1、2、3、4、5。第二种初始化方式会创建 4 个元素的数组,其元素依次为 23、24、12、6。
一维数组的使用
在 Java 集合中,一维数组是常见的一种数据结构。那么,如何使用一维数组解决生活中的实际问题呢?来看下面的实例。【实例】使用一维数组输出 1~12 月每个月份的天数。
在项目中创建 GetDay 类,在主方法中创建并初始化一个用于存储 1~12 月每个月份天数的 int 型数组,在控制台上输出 1~12 月每个月份的天数。实例代码如下:
public class GetDay { // 创建类 public static void main(String[] args) { // 主方法 int day[] = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 创建并初始化一维数组 for (int i = 0; i < 12; i++) { // 利用循环将信息输出 System.out.println((i + 1) + "月有" + day[i] + "天"); // 输出每月的天数 } } }运行结果如下:
1月有31天
2月有28天
3月有31天
4月有30天
5月有31天
6月有30天
7月有31天
8月有31天
9月有30天
10月有31天
11月有30天
12月有31天