Loading... # 容器 将多个数据存储到一起,每个数据被称为该容器的元素。 # 数组的定义 数组就是存储数据长度固定的容器,保证多个数据的类型一致。 【注意】 1. 数组是一种引用数据类型; 2. 数组中元素的数据类型必须保持一致; 3. 数组的长度在运用期间不能改变。 动态初始化:指定长度 ```java has-numbering 数组存储的数据类型[] 数组名 = new 数组存储的数据类型[数组长度]; ``` 静态初始化:指定内容 ```java has-numbering 数组存储的数据类型[] 数组名 = new 数组存储的数据类型[]{元素1, 元素2, ...}; 数组存储的数据类型[] 数组名 = {元素1, 元素2, ...}; ``` 【注意】使用动态初始化创建数组时,其中的元素会有一个初始值。 | 整数 | 浮点数 | 字符 | 布尔 | 引用 | | ------ | -------- | ------------ | ------- | ------ | | 0 | 0.0 | ‘\U0000’ | false | null | # 数组的访问 直接打印数组名称,得到数组在内存中的地址哈希值。 ## 索引 **int类型** 数值,代表数组中元素的编号。从**0** 开始,到**数组的长度-1** 结束。 ## 数组长度属性 `数组名.length`,数组一旦创建,在程序运行期间,数组的长度不可改变。 ## 访问格式 * `数组名[索引] = 数值`:给数组中的元素赋值 * `变量 = 数组名[索引]`:获取数组中的元素 # 数组的内存原理 new出来的数组在堆内存中存储,存储数组的变量存储的是数组在内存中的地址值。 # 数组的常见操作 1. 遍历数组 ```java has-numbering public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } ``` 2. 获取数组最大元素 1. 定义变量,保存数组0索引上的元素 2. 遍历数组,获取出数组中的每个元素 3. 将遍历到的元素和保存数组0索引上值的变量进行比较 4. 如果数组元素的值大于了变量的值,变量记录住新的值 5. 数组循环遍历结束,变量保存的就是数组中的最大值 ```java has-numbering public static void main(String[] args) { int[] arr = {100, 2, 20, 500, 9, 10000}; int max = arr[0]; for (int i = 0; i < arr.length; i++) { if (arr[i] > max) { max = arr[i]; } } System.out.println("最大值是:" + max); } ``` 3. 数组元素反转:数组最远端的元素互换位置 1. 定义两个变量,保存数组的最小索引和最大索引 2. 两个索引上的元素交换位置 3. 最小索引++,最大索引–,再次交换位置 4. 最小索引超过了最大索引,数组反转操作结束 ```java has-numbering // 数组元素反转 public static void main(String[] args) { int[] arr = {100, 2, 20, 500, 10, 9, 10000}; printArr(arr); for (int min = 0, max = arr.length - 1; min <= max; min++, max--) { int temp = arr[min]; arr[min] = arr[max]; arr[max] = temp; } printArr(arr); } // 输出数组 public static void printArr(int[] arr) { for (int value : arr) { System.out.print(value + " "); } System.out.println(); } ``` # 常见异常 1. ArrayIndexOutofBoundsException:数组下标越界异常 2. NullPointException:空指针异常 # 数组作为方法的参数和返回值 方法的参数时基本类型时,传递的时数据值。方法的参数是引用数据类型时,传递的时地址值。 一个方法只能有一个返回值,如果要返回多个数据,则可以使用数组。 * 方法传递基本数据类型和引用数据类型作为参数的区别 ```java has-numbering public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a); // 1 System.out.println(b); // 2 change(a, b); System.out.println(a); // 1 System.out.println(b); // 2 } private static void change(int a, int b) { a = a + b; b = a + b; System.out.println(a); // 3 System.out.println(b); // 5 } ``` ```java has-numbering public static void main(String[] args) { int[] arr = {1, 3, 5}; printArr(arr); // 1 3 5 changeArr(arr); printArr(arr); // 666 3 5 } private static void changeArr(int[] arr) { arr[0] = 666; } private static void printArr(int[] arr) { for (int i : arr) { System.out.print(i + " "); } System.out.println(); } ``` 最后修改:2021 年 10 月 07 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏