目录
数组的定义
- 相同的类型数据的集合就叫做数组。定义语法:type[] 变量名/数组名 = new type[length] type为数组类型,length为数组的长度
- 数组中索引是从0开始的,对数组而言最大的索引为数据的 length - 1。
- 每个定义的数组都有一个属性length
// 1
int[] a1 = new int[10];
// 2
int a2[] = new int[10];
System.out.println(a1.length);
System.out.println(a2.length);
注:
- 上面1和2都是定义一个长度为10的int类型的数组,他们的length属性值都是10.
- 但建议的写法是1.因为int表示int类型,而 int[] 可以直观的看出他是int类型的数组。
数组的取值和初始化
数组的取值
数组通过索引取得对应位置的值:a1[1]表示获取a1数组第1位的值。注意:数组索引是从0开始,所以a1[1]是获取a1数组的第二个值。
int[] a1 = new int[10];
System.out.println(a1[1]);
上面的运行结果我们可以看到a1[1]的值为0,为什么是0呢?而且我们好像没有为a1[1]赋值
数组的初始化
int[] a1 = new int[10];
a1[1] = 15;
System.out.println(a1[0]);// 0
System.out.println(a1[1]);// 15
以上我们是通过数组下标对a1[1]进行了赋值。而a1[0]没有手动赋值,但打印出来其值为0.表示,int类型的数组,如果没有对对应位置进行赋值,那么它默认值为0
总结:
整型类型(byte、short、int、long)的数组默认值为0
浮点型数据(float、double)的数组默认值为0.0
布尔类型的数组默认值为false
chat类型的数组默认值为空字符
byte[] a1 = new byte[10];
System.out.println(a1[1]);// 值为0
short[] a2 = new short[10];
System.out.println(a2[1]);// 值为0
int[] a3 = new int[10];
System.out.println(a3[1]);// 值为0
long[] a4 = new long[10];
System.out.println(a4[1]);// 值为0
float[] a5 = new float[10];
System.out.println(a5[1]);// 值为0.0
double[] a6 = new double[10];
System.out.println(a6[1]);// 值为0.0
char[] a7 = new char[10];
System.out.println(a7[1]);// 值为空字符
boolean[] a8 = new boolean[10];
System.out.println(a8[1]);// 值为0
以上是基本数据类型的数组的初始值,前面我们提到过,java还有一种数据类型,引用类型。引用类型的数据的数组,其默认值为null
String[] a1 = new String[10];
System.out.println(a1[1]);// 值为null
String就是引用数据类型,后续我们会对该类进行详细的讲解
数组本身也是一种引用类型
如果下标与对应的值是有规律的,我们可以使用循环语句来进行赋值,比如初始化一个数组,对应的值为1~100
int[] a1 = new int[100];
for(int i = 0; i < 100; i++){
a1[i] = i + 1;
}
System.out.println(a1[50]);// 值为51,下标从0开始a1[0] = 1
但是对于不规律的赋值就不好办了,以上的赋值方式就难了。如果不规律,但长度有限的数组初始化,我们可以采用如下的静态初始化方式
// 1
int[] a1 = {1,12,88};
System.out.println(a1[1]);// 值为12
// 2
int[] a2 = new int[]{2,3,99,1,34,55};
System.out.println(a2[2]);// 打印99
此处建议使用1这种赋值方式
注:静态初始化方式我们可以看到没有声明长度,因为长度在你初始化的时候就定了,a1的长度是3.
二维数组
二维数组是一种平面的二维结构,本质上是数组的数组。二维数组的定义方式:type[][] a = new type[2][3];2行3列
int[][] h = new int[2][3];
h[0][0] = 11;
h[0][1] = 12;
h[0][2] = 13;
h[1][0] = 21;
h[1][1] = 22;
h[1][2] = 23;
System.out.println(h[0][0]);
int[][] i = new int[2][];//定义一个2行的二维数组
i[0] = new int[1];//第一行1列
i[1] = new int[2];//第二行2列
// int[][] i = new int[][3];//此处是错误的,编译错误
// 静态定义
int[][] j = new int[][]{{1,2},{3,4},{5,6}};
多维数组
- 三维数组。type[][][] a = new type[2][3][4];//三维数组还是比较少见的。其定义等依此类推。
上一篇:006-Java控制语句
下一篇:008-Java方法(函数)