数组--数组的初始化--动态初始化
动态初始化
初始化时只指定数组长度,由系统为数组分配初始值。
格式
数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
举例:
int[] arr = new int[3];
解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值。
程序示例
public class ArrayDemo1 {
public static void main(String[] args) {
// 定义一个数组,int类型的数组。
// int[] arr;
// 单独使用是没有任何意义地,因为尚未初始化变量arr,未初始化之前不能使用。
// System.out.println(arr);
// 动态初始化的方式定义一个int类型的数组,长度为3
int[] arr = new int[3];
/* 代码解释:
左边:
int: 说明数组中的元素的数据类型是int类型
[]: 说明它是一个数组类型
arr: 给数组起个名字
右边:
new: 代表为数组分配一个内存空间
int: 说明数组中的元素的数据类型是int类型
[]: 说明它是一个数组
3: 代表着数组的长度,其实这里的3就是数组元素的个数
*/
System.out.println(arr); // 输出结果: [I@4554617c 地址值: 十六进制的。
// 但是呢,在实际编写代码的过程中,拿到地址值是没有任何意义的,我们大多数情况下实际上是想获取数组的元素值,怎么获取呢?
// 数组里面提供了一个类似于编号作用的东西,我们称之为索引(下标)。
// 如何通过索引获取数组中的元素呢?
// 语法格式:
// 数组的名称[索引]
// 注意:索引的编号是从0开始的,从左往右的顺序编号。
// 获取arr数组中的第一个元素
System.out.println(arr[0]); //输出结果为0,因为我们没有给数组里面的元素赋值,0是系统为数组分配初始值。
// 获取arr数组中的第二个元素
System.out.println(arr[1]); //输出结果为0,因为我们没有给数组里面的元素赋值,0是系统为数组分配初始值。
// 获取arr数组中的第三个元素
System.out.println(arr[2]); //输出结果为0,因为我们没有给数组里面的元素赋值,0是系统为数组分配初始值。
}
}
/*
此时数组中的元素的值是系统默认给的值,大多数情况下我们定义一个数组,实际上想存的是我们自己给的值。
如何将我们想给的值赋值给数组中的元素呢?
*/
public class ArrayDemo2 {
public static void main(String[] args) {
// 动态初始化定义一个数组,元素是int类型的,元素个数为3个
int[] arr = new int[3];
// 定义完数组后,输出数组的名字和各个元素值
System.out.println(arr);
// 输出数组中每个元素的值
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
// 需求:想要把10,20,30这个三个值分别赋值给数组中的第一个元素,第二个元素、第三个元素。
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
//再打印数组的名字以及数组中的元素
System.out.println(arr);
System.out.println(arr[0]); //输出结果为10
System.out.println(arr[1]); //输出结果为20
System.out.println(arr[2]); //输出结果为30
}
}
/*
定义两个int类型的数组,分别输出数组名及元素。
然后分别给数组中的元素赋值,分别再次输出数组名及元素。
*/
public class ArrayDemo3 {
public static void main(String[] args) {
//定义一个数组(动态初始化的方式)
int[] arr1 = new int[3];
arr1[0] = 11;
arr1[1] = 22;
arr1[2] = 33;
System.out.println(arr1);
System.out.println(arr1[0]); //输出结果为11
System.out.println(arr1[1]); //输出结果为22
System.out.println(arr1[2]); //输出结果为33
//定义第二个数组(动态初始化的方式)
int[] arr2 = new int[4];
arr2[0] = 44;
arr2[1] = 55;
arr2[2] = 66;
System.out.println(arr2);
System.out.println(arr2[0]); //输出结果为44
System.out.println(arr2[1]); //输出结果为55
System.out.println(arr2[2]); //输出结果为66
System.out.println(arr2[3]); //输出结果为0
}
}
/*
定义两个数组,先定义一个数组,赋值,输出。
然后定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
然后给第二个数组赋值,再次输出两个数组的名字及元素。
*/
public class ArrayDemo4 {
public static void main(String[] args) {
//定义一个数组
int[] arr = new int[3];
arr[0] = 11;
arr[1] = 22;
arr[2] = 33;
System.out.println(arr); //输出结果为[I@4554617c
System.out.println(arr[0]); //输出结果为11
System.out.println(arr[1]); //输出结果为22
System.out.println(arr[2]); //输出结果为33
System.out.println("====================");
//然后定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
int[] arr2 = arr;
//然后给第二个数组赋值,再次输出两个数组的名字及元素。
arr2[0] = 100;
arr2[1] = 200;
System.out.println(arr); //输出结果为[I@4554617c
System.out.println(arr[0]); //输出结果为100
System.out.println(arr[1]); //输出结果为200
System.out.println(arr[2]); //输出结果为33
System.out.println("====================");
System.out.println(arr2); //输出结果为[I@4554617c
System.out.println(arr2[0]); //输出结果为100
System.out.println(arr2[1]); //输出结果为200
System.out.println(arr2[2]); //输出结果为33
}
}