武器数据档案馆

在计算机语言中,数组是非常重要的数据结构,大部分计算机语言中,数组具有如下三个基本特性:

一致性:数组只能保存相同数据类型的元素,可以是任何相同的数据类型;

有序性:数组中的元素是有序的,通过下标访问;

不可变性:数组一旦初始化,则长度(数组中元素的个数)不可变。

在 Java 中,数组的下标是从零开始的,事实上,很多计算机语言的数组下标都是从零开始的。Java 数组下标访问运算符是中括号,如 intArray[0],表示访问 intArray 数组的第一个元素,0 是第一个元素的下标。

另外,Java 中的数组本身是引用数据类型,它的长度属性是 length。

Java数组声明

引用数据类型之前一定要做两件事情:声明和初始化。数组声明完成后,数组的长度还不能确定。

数组声明的语法格式如下:

元素数据类型[] 数组变量名;

元素数据类型 数组变量名[];

可见数组的声明有两种方式:

一种是中括号([])跟在元素数据类型之后;

另一种是中括号([])跟在数组变量名之后。

从面向对象角度看,Java 更推荐采用第一种声明方式,因为它把“元素数据类型[]”看成一个整体类型,即数组类型。而第二种是 C 语言数组声明方式。

数组声明示例如下:

int intArray[];

float[] floatArray;

String strArray[];

Date[] dateArray;

Java数组初始化

声明完成就要对数组进行初始化,数组初始化的过程就是为数组每一个元素分配内存空间,并为每一个元素提供初始值。初始化之后数组的长度就确定下来不能再变化了。

数组初始化可以分为静态初始化和动态初始化。

1) 静态初始化

静态初始化就是将数组的元素放到大括号中,元素之间用逗号(,)分隔。示例代码如下:

double[] doubleArray = {2.1, 32, 43, 45};

String[] strArray = {"刘备", "关羽", "张飞"};

静态初始化是在已知数组的每一个元素内容的情况下使用的。很多情况下数据是从数据库或网络中获得的,在编程时不知道元素有多少,更不知道元素的内容,此时可采用动态初始化。

2) 动态初始化

动态初始化使用 new 运算符分配指定长度的内存空间,语法格式如下:

new 元素数据类型[数组长度];

示例代码如下:

// 数组初始化

public class Main {

public static void main(String args[]) {

// 1. 静态初始化

double[] doubleArray = {2.1, 3.2, 0.43, 5.45};

String[] strArray = {"刘备", "关羽", "张飞"};

// 2. 动态初始化

int[] intArray2; // 声明数组 intArray2

intArray2 = new int[4]; // 通过 new 运算符分配了 4 个元素的内存空间

intArray2[0] = 21;

intArray2[1] = 32;

intArray2[2] = 43;

// 动态初始化 String 数组

String[] strArray2 = new String[3]; // 通过 new 运算符分配了 3 个元素的内存空间

// 初始化数组元素

strArray2[0] = "刘备";

strArray2[1] = "关羽";

strArray2[2] = "张飞";

}

}