什么是数组
数组本质上就是让我们能 “批量” 创建相同类型的变量。
例如,在表示少量数据时,我们可以直接创建a, b,c这样的变量。但是当需要大量数据时,这样一个个创建太费时费力。这时候就需要使用数组,帮我们批量创建。
创建数组
基本语法格式:
// 动态初始化(指定长度)
数据类型[] 数组名称 = new 数据类型 [长度] { 初始化数据 };
// 静态初始化(指定内容)
数据类型[] 数组名称 = { 初始化数据 };
代码示例:
int[] arr = new int[3]{1, 2, 3}; //动态初始化
int[] arr = {1, 2, 3}; //静态初始化
使用建议:
如果不确定数组当中的具体内容,用动态初始化;否则,已经确定了具体的内容,用静态初始化。
数组使用示例
示例1: 获取长度 & 访问元素
int[] arr = {1, 2, 3};
//打印数组对应的内存地址哈希值
System.out.println(arr);
// 获取数组长度
System.out.println("length: " + arr.length); // 执行结果: 3
// 访问数组中的元素
System.out.println(arr[1]); // 执行结果: 2
System.out.println(arr[0]); // 执行结果: 1
arr[2] = 100; //按照数组下标重新赋值
System.out.println(arr[2]); // 执行结果: 100
//还可以将数组中的元素值赋给变量;
int a = arr[2];
System.out.println("a----->" + a);
执行结果:
注意:访问数组不能越界,例如下面代码所示
int[] arr = {1, 2, 3};
System.out.println(arr[100]);
抛出了 java.lang.ArrayIndexOutOfBoundsException 异常. 使用数组一定要下标谨防越界。
示例2:遍历数组
int[] arr = {1, 2, 3};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
使用for-each遍历:
int[] arr2 = {1, 2, 3};
for (int x : arr2) {
System.out.println(x);
}
System.out.println("这是for-each遍历");
for-each 是 for 循环的另外一种使用方式,能够更方便的完成对数组的遍历, 可以避免循环条件和更新语句写错。