数组
参考资料:《Java从入门到精通》/明日科技编著. 4版. 北京:清华大学出版社,2016
数组是具有相同数据类型的一组数据的集合,每个元素具有相同的数据类型。在Java中同样将数组看作一个对象,虽然基本数据类型不是对象,但是由基本数据类型组成的数组却是对象。
一、一维数组
一维数组实质上是一组相同类型数据的线性集合。
1、创建一维数组
数组作为对象允许使用new关键字进行内存分配。
在使用数组之前,必须先定义数组变量所属的类型。
(1) 先声明,再用new进行内存分配
int arr[]; //声明int类型的一维数组
String str[]; //声明String类型的一维数组
声明数组后,还不能立即访问它的任何元素,想要使用数组,还要为它分配内存空间。在数组分配内存空间时,必须指定数组的长度。
arr = new int[5]; //创建有5个元素的整型数组
str = new String[4];
上述代码表示创建一个拥有5个元素的整型数组,并且将创建的数组对象赋值给引用变量arr,即引用变量arr引用这个数组。
说明:使用new关键字为数组分配内存时,整型数组中各个元素的初始值为0。
(2) 声明的同时为数组分配内存
int month[] = new int[12];
上述代码创建了一个整型数组,同时指定了数组的长度。
2、 初始化一维数组
数组的初始化有两种形式:
int arr[] = new int[]{1,2,3,4,5};
int arr2[] = {2,3,4,5};
二、二维数组
如果一维数组中的各个元素都是数组,那么它就是一个二维数组。二维数组常用于表示表,表中的信息以行和列的形式组织,第一个下标代表元素的行,第二个下标代表元素的列。
1、二维数组的创建
二维数组可以看作特殊的一维数组,因此,二维数组的创建也有两种方式:
(1)先声明,再用new关键字进行内存分配
int arr[][]; //声明一个int型二维数组
arr = new int[2][4]; //分配内存
同一维数组一样,二维数组在声明时也没有进行内存空间分配,同样需要使用new关键字来分配内存,然后才可以访问各个元素。
(2)声明的同时为数组分配内存
int arr[][] = new int[2][4];
上述代码创建了二维数组,二维数组arr包含了2个长度为4的一维数组。
int array[][] = new int[2][];
//分别为每一维分配内存
array[0] = new int[2]; //长度为2
array[1] = new int[3]; //长度为3
上述代码创建了二维数组,二维数组array包含了2个长度分别为2和3的一维数组。
2、二维数组的初始化
int myarr[][] = {{2,4}, {6,8,10}};
3、二维数组的使用
输出一个5行10列且所有元素为0的矩阵。
public class Matrix {
public static void main(String[] args) {
int a[][] = new int[5][10];
for(int i=0; i
for(int j=0; j
System.out.print(a[i][j]);
}
System.out.println();
}
}
}
输出结果:
0000000000
0000000000
0000000000
0000000000
0000000000
说明:对于整型二维数组,分配内存后系统自动给每个元素赋予初始值0
三、数组的操作
1、遍历数组
遍历数组就是获取数组中的每个元素,通常使用for循环来完成。
public class Matrix {
public static void main(String[] args) {
//创建二维数组并赋初始值
int a[][] = new int[][]{{1},{2,3},{4,5,6}};
for(int i=0; i
for(int j=0; j