数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。
数据类型[] 数组名
示例:
int[] arr; double[] arr; char[] arr;数据类型 数组名[]
示例:
int arr[]; double arr[]; char arr[];就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。
完整版格式
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};简化版格式
数据类型[] 数组名 = {元素1,元素2,...};示例代码:
// 数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素2...}; // 创建了一个int类型的数组, 数组名叫arr, 数组中存储了 11 22 33 这个三个数据. int[] arr = new int[]{11, 22, 33}; System.out.println(arr); // 数据类型[] 数组名 = {元素1, 元素2, 元素2...}; double[] dArr = {12.3, 22.3, 33.3}; System.out.println(dArr);每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。
这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
示例代码:
int[] arr = {11, 22, 33, 44, 55}; // 需求1: 将元素44取出来打印在控制台 System.out.println(arr[3]); // 需求2: 修改0号元素位置元素为66, 修改后取出并打印. arr[0] = 66; System.out.println(arr[0]);遍历:将数组中所有的内容取出来,取出来之后可以(打印,求和,判断..)。
遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印!
数组的长度属性:arr.length
IDEA快速生成遍历的方式:数组名 + fori 回车
代码示例:
int[] arr = {11, 22, 33, 44, 55, 33, 44, 55, 33, 44, 55, 33, 44}; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); }数组动态初始化就是只给定数组的长度,由系统给出默认初始化值
10.6.3 动态初始化格式详解
等号左边:
int:数组的数据类型
[]:代表这是一个数组
arr:代表数组的名称
等号右边:
new:为数组开辟内存空间
int:数组的数据类型
[]:代表这是一个数组
5:代表数组的长度
代码 :
// 数据类型[] 数组名 = new 数据类型[数组的长度]; int[] arr = new int[3]; System.out.println(arr[0]); // 0 System.out.println(arr[1]); // 0 System.out.println(arr[2]); // 0 arr[0] = 11; arr[1] = 22; arr[2] = 33; System.out.println(arr[0]); // 0 System.out.println(arr[1]); // 0 System.out.println(arr[2]); // 0当访问了数组中不存在的索引,就会引发索引越界异常。
代码示例:
int[] arr = {11, 22, 33}; System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); System.out.println(arr[10]);//当访问了数组中不存在的索引,就会引发索引越界异常。核心点:
要知道索引的范围。
最小索引:0
最大索引:数组的长度 - 1
当引用数据类型变量被赋值为null之后,地址的指向被切断,还继续访问堆内存数据,就会引发空指针异常
代码示例:
int[] arr = new int[2]; arr = null; System.out.println(arr[0]);本质上也是“类”,且二维数组中每个一维数组的长度可以不相同。
二维数组的定义与初始化
//数组静态初始化 int[][] matrix1 = {{1,2},{3,4},{5,6}}; //数组动态初始化 int[][] matrix2 = new int[2][3]; //二维数组遍历 for(int i = 0; i < matrix1.length; i++){ for(int j = 0; j < matrix1[i].length; j++){ System.out.println(matrix1[i][j]); } }数组克隆时一定要注意浅克隆问题哦