前言
提示:本文大概内容:
- 了解什么是数组?
- 掌握数组声明、初始化、使用
提示:以下是本篇文章正文内容
一、数组是什么?
示例:数组就是用于存储数据的长度固定的容器,保证多个数据的数据类型要一致。
二、一维数组声明和使用
1.声明
代码如下(示例):
/*
类型名[] 数组名;
*/
int[] nums; //推荐使用
int nums[]; //不推荐使用
2.初始化
代码如下(示例):
//1、动态初始化
int[] nums = new int[5]; //数字代表数组长度,需要单独赋值
nums[0] = 5;
//2、静态初始化
int[] nums = {1,2,3,4,5}; //静态初始化,每个元素都有初始值
/*报错
int[] nums;
nums = {1,2,3,4,5};
*/
⚠️小结:
- 数组必须在初始化的时候,给出数组长度,且长度不再改变。(数组定长)
- 数组动态初始化,数组存储默认值。
- 静态初始化赋值,必须在一行完成。
3.使用数组
代码如下(示例):
System.out.println(nums[0]); //访问nums数组第一个元素
⚠️小结
- 访问数组下标,要防止越界(数组下标从0开始);且下标只能是int类型。
三、二维数组声明和使用
数据元素为一维数组的数组就是二维数组。
3.1 二维数组声明
示例代码:
int[][] nums = new int[3][4];//数组长度为3,每个元素有4个一维数组
int[][] nums = new int[3][]; //数组长度为3,每个元素数组长度不确定
int[][] arr= {{1,2,3}, {4,5}, {5,6,7,8}}; //静态
3.2二维数组使用
示例代码:
int[][] arr = new int[3][];
System.out.println(arr);//[[I@1241223
System.out.println(arr[0]);//null
System.out.println(arr[1]);//null
System.out.println(arr[2]);//null
int[] arr_1 = {1,2,3};
arr[0] = arr_1;
int[] arr_2 = {4,5};
arr[1] = arr_2;
int[] arr_3 = {6,7,8,9};
arr[2] = arr_3;
System.out.println(arr[0]);//[I@4e2589f
System.out.println(arr[1]);//[I@70de74e
System.out.println(arr[2]);//[I@5c64675
System.out.println(arr[0][0]);//1
System.out.println(arr[0][1]);//2
System.out.println(arr[0][2]);//3
System.out.println(arr[1][0]);//4
System.out.println(arr[1][1]);//5
System.out.println(arr[2][0]);//6
System.out.println(arr[2][1]);//7
System.out.println(arr[2][2]);//8
System.out.println(arr[2][3]);//9
3.3 二维数组遍历
示例代码:双层for循环
int[][] arr = {{1,2,3}, {4,5}, {5,6,7,8}};
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
总结
1、数组动态初始化、静态初始化区别
动态初始化:保存将来会出现的值,预留空间。
静态初始化:没有空余空间存储新值。
2、数组存储
数组首地址存储在栈中,栈中存储堆中分配的首地址。