1.1数组的创建
1.1.1数组的创建
T[] 数组名 = new T[N];
例如:
int[] array1 = new int[3]; // 创建一个大小为3的int类型元素的数组
double[] array2 = new double[2]; // 创建一个大小为2个double类型元素的数组
String[] array3 = new double[1]; // 创建一个大小为1个字符串元素的数组
1.1.2数组的初始化
数组主要有两种初始化的方式,分别是动态初始化和静态初始化。在初始化的同时将数据直接存储进数组中就是静态初始化,反之则是动态初始化。
1.动态初始化:
int[] array = new int[3];// 创建一个大小为3的int类型元素的数组
2.静态初始化:
String[] array3 = new String[]{"hello", "world", "!!!"};
String[] array3 = {"hello", "world", "!!!"};//静态初始化的简写
注意:在静态初始化中没有直接给出数组长度,但编译器在编译时会自动识别元素个数来确定数组的长度。
同时初始化也可以分布进行,但是格式不能进行简写,否则编译器报错(非法的表达式开始):
int[] array1;
array1 = new int[3];
//创建一个大小为3的int型数组
//错误示范:
//int[] array2;
//array2={1,2,3};
1.2数组的遍历
遍历就是将数组中的所有元素都进行一次访问。
例如打印数组元素的时候就需要对数组进行遍历:
public static void printArray(int array[]) {
//输出数组中的数
for (int i = 0; i <array.length ; i++) {
System.out.print(array[i]+" ");
}
System.out.println();
}
注意:数组中可以通过数组名.length获取数组长度
还可以通过for-each来遍历数组
int[] array = {1, 2, 3};
for (int x : array) {
System.out.println(x);
}
for-each循环基本语句(提倡能用foreach的地方就不要再用for):
for ( 变量类型 变量名 : 数组名 ) {
需要执行的循环语句;
}
1.3数组的引用类型
基本数据类型创建的变量是基本变量,该变量空间中直接存放的是其所对应的值。
而引用数据类型创建的变量,称为对象的引用,一般空间中存贮的是对象所在空间的地址。
例如:
public static void () {
int a = 10;
int b = 20;
int[] array = new int[]{1,2,3};
}
变量a,b是内置类型的数据,空间中保存的就是初始化数据。
数组array是数组类型的引用变量,空间中保存的是堆空间的首地址。
引用变量存储对象在堆空间的首地址,通过该地址来对对象进行操作,类似于c中的指针。
注意:无法对一个设置为null的数组进行操作,编译通过但无法运行。
int[] arr = null;
System.out.println(arr[0]);
//运行报错:Exception in thread "main" java.lang.NullPointerException