多维数组-二维数组
多维数组只介绍二维数组。
-
二维数组的应用场景,开发一个五子棋游戏,棋牌就是需要二维数组来表示。
从定义形式上看,可以看成原来的一维数组的每个元素是一维数组,就构成了二维数组。
int arr[][] = {{0,0,0,0,0,0},{0,0,1,0,0,0},{0,2,0,3,0,0},{0,0,0,0,0,0}}; for(int i = 0;i < arr.length;i++){ for(int j = 0; j < arr[i].length;j++){ System.out.print(arr[i][j] + "\t"); } System.out.println(); }
访问第(i+1)个一维数组的第(j+1)个值,arr[i] [j];
二维数组的使用
使用方式1:动态初始化
-
语法:类型[] [] 数组名 = new 类型[大小] [大小]
-
比如:int a[] [] = new int[2] [3]
-
使用演示:
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(); }
使用方法2:动态初始化
-
先声明:类型 数组名[] []; (twoDimensionalArray02)(与方法1差不多,区别这个是先声明再赋值)
-
再定义(开辟空间)数组名 = new int[类型] [大小]
int arr[][]; arr = new int[2][3];
-
赋值(有默认值,比如int 类型的就是0)
使用方式3:动态初始化-列数不确定
-
看一个需求:动态创建下面二维数组,并输出。
j and i | j = 0 | j = 1 | j = 2 |
---|---|---|---|
i = 0 | 1 | ||
i = 1 | 2 | 2 | |
i = 2 | 3 | 3 | 3 |
-
完成该方案
-
int arr[][] = new int[3][]; for(int i = 0;i < arr.length;i++){ //给每个一维数组开空间 new //如果没有给一维数组 new 那么arr[i]就是null arr[i] = new int[i + 1]; //遍历一维数组,并给一维数组的每个元素赋值 for(int j = 0;j < arr[i].length;j++){ arr[i][j] = i + 1; } } System.out.println("=====数组元素展示====="); 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(); }
-
示意图:
使用方法4:静态初始化
-
定义 类型 数组名[] [] = {{值1,值2},{值1,值2},{值1,值2}}
-
使用即可[固定式访问]
比如:
int[] [] arr = {{1,1,1},{8,8,9},{100}}
解读:
-
定义了一个二维数组 arr
-
arr有三个元素(每个元素都是一维数组)
-
第一个一维数组里有3个元素,第二个一维数组有3个元素,第三个一维数组有1个元素。
二维数据的内存布局:
二维数组的遍历
int arr[][] = new int[x][y]; for(int i = 0;i < arr.length;i++){ for(int j = 0;j < arr[i].length;j++){ System.out.println(a[i][j]); } }