1、数组概述
数组是具有相同数据类型的一组数据的集合。
数组中每个元素具有相同的数据类型。
在Java中同样将数组看作一个对象,虽然基本数据类型不是对象,但由基本数据类型组成的数组却是对象。
在程序设计中引入数组可以更有效的管理和处理数据。
可根据数组的维数将数组分为一维数组、二维数组···
2、一维数组的创建及使用
一维数组实质上是一组相同类型数据的线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以应用这种类型的数组。
-
创建一维数组
数组作为对象允许使用new关键字进行内存分配。
在使用数组之前,必须首先定义数组变量所属的类型。
一维数组的创建有两种形式:
(1)、先声明,再用new运算符进行内存分配
声明一维数组有下列两种方式:
数组元素类型 数组名字[];
数组元素类型[] 数组名字;
数组元素类型决定了数组的数据类型。它可以是Java中任意的数据类型,包括简单类型和组合类型。
数组名字为一个合法的标识符,符号“[]”指明该变量是一个数组类型变量。单个“[]”表示要创建的数组是一个一维数组。
声明数组后,还不能立即访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,要想真正使用数组,还要为它分配内存空间。
在为数组分配内存空间时必须指明数组的长度。为数组分配内存空间的语法格式如下:
数组名字 = new 数组元素的类型[数组元素的个数];
数组名字:被连接到数组变量的名称。
数组元素的个数:指定数组中变量的个数,即数组长度。
(2)、声明的同时为数组分配内存
语法如下:
数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数]; -
初始化一维数组
数组与基本数据类型一样可以进行初始化操作。
主要有两种形式:
例如:
(1)、int arr[] = new int[]{1,2,3,4,5,23};
(2)、int arr2[] = {34,23,44};
从中可以看出,数组的初始化就是包括在大括号之内用逗号分开的表达式列表。 -
使用一维数组
实例:使用一维数组将1-12月各月的天数输出。
代码演示:
package com.company.day8;
public class day81 {
public static void main(String[] args){
String[] day = new String[]{"31","28或29","31","30","31","30","31","31","30","31","30","31"};
for(int i = 0;i < 12;i++){
System.out.println((i+1)+"月有"+day[i]+"天");
}
}
}
结果:
3、二维数组的创建及使用
如果一维数组中各个元素任然是一个数组,那么他就是一个二维数组。
二维数组常用于表示表,表中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代表元素所在的列。
-
二维数组的创建
二维数组的两种创建方式:
(1)、先声明,再用new运算符进行内存分配
声明二维数组的语法如下:
数组元素的类型 数组名[][];
数组元素的类型[][] 数组名;
二维数组的内存分配,同样使用new关键字来分配内存,然后才可以访问每一个元素。
对于高维数组,有两种分配内存的方式:
直接为每一维分配内存空间:
例如:a = new int[2][4]
分别为每一维分配内存空间:
例如:a = new int[2][];
a[0] = new int[2];
a[1] = new int[3];
(2)、声明的同时为数组分配内存
与一维数组的方法类似。 -
二维数组初始化
二维数组的初始化与一维数组初始化类似,同样采用大括号完成。
语法如下:
type arrayname[][] = {{value11,value12…},{value21,value22…},…};
type:数组数据类型。
arrayname:数组名称,一个合法的标识符。
value:数组中的元素。
例如:int myarr[][] = {{12,0},{44,22}}; -
使用二维数组
实例:使用二位数组输出一个3行4列且所有元素都是0的矩阵。
代码演示:
package com.company.day8;
public class day82 {
public static void main(String[] args){
int[][] a = new int[3][4];
for (int[] ints : a) {
for (int anInt : ints) {
System.out.print(anInt);
}
System.out.println();
}
}
}
结果:
注意:对于整型二维数组,创建成功之后系统会给数组中每个元素赋予初始值0.