二维数组
简单说明:
如何描述下面定义的二维数组
定义方式一:
int[][] array = new int[3][4];
描述:该二维数组中有三个一维数组 每一个一维数组中有4个元素
打印二维数组的长度 相当于打印数组中有多少个一维数组
System.out.println(array.length);
结果为:3
System.out.println(array[0].length);
结果为:4
定义方式二:可以把数组中得元素都定义出来
定义一个二维数组
二维数组中 有三个一维数组
1,2,3,4 / 2,34,234,11 / 23,44,66,44
int[][] array = new int[][]{
{1,2,3,4},
{2,34,234,11},
{23,44,66,44}
};
遍历二维数组
方法一:
for (int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length; j++){
System.out.println(array[i][j] + " ");
}
System.out.println();
}
方法二:
for(int i = 0; i < array.length; i++){
System.out.println(Arrays.toString(array[i]));
}
多维数组
三维数组 : 是容器 保存 多个相同数据类型的 二维数组
描述下面定义的三维数组
定义方法1:
定义:int[][][] arr = new int[2][3][4];
描述:两层两列三行
这个三维数组中有两个二维数组,每个二维数组中又有两个一维数组,
定义方法2:
int[][][] arr = new int[][][]{
{
{1,2,3},
{4,5,6},
},
{
{7,8,9},
{10,11,12},
},
};
遍历数组求和
int sum = 0;
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length; j++){
for(int k = 0; k < a[i][j].length; k++){
System.out.println(a[i][j][k] + " ");
sum = sum + array[i][j][k];
}
System.out.println();
}
System.out.println();
}
System.out.println("和为:" + sum);
二维数组的应用:迷宫游戏
走出迷宫:
##########
#0 ##
## ##### #
# ### #
# ## # #
# ## # ###
# ###
##########
代码实现:
public static void main(String[] args) {
char[][] array = {
{'#','#','#','#','#','#','#','#','#','#'},
{'#','0',' ',' ',' ',' ','#','#',' ',' '},
{'#','#',' ','#','#','#','#','#',' ','#'},
{'#',' ',' ',' ',' ','#','#','#',' ','#'},
{'#',' ','#','#',' ','#',' ',' ',' ','#'},
{'#',' ','#','#',' ','#',' ','#','#','#'},
{'#',' ',' ',' ',' ',' ',' ','#','#','#'},
{'#','#','#','#','#','#','#','#','#','#'},
};
printArray(array);
int x = 1;
int y = 1;
int ex = 1;
int ey = 9;
Scanner scanner = new Scanner(System.in);
while(array[ex][ey] != '0') {
System.out.println("请输入 w a s d");
String string = scanner.nextLine();
switch (string) {
case "w":
if(array[x - 1][y] != '#') {
array[x][y] = ' ';
x = x - 1;
array[x][y] = '0';
}
break;
case "a":
if(array[x][y - 1] != '#') {
array[x][y] = ' ';
y = y - 1;
array[x][y] = '0';
}
break;
case "s":
if(array[x + 1][y] != '#') {
array[x][y] = ' ';
x = x + 1;
array[x][y] = '0';
}
break;
case "d":
if(array[x][y+1] != '#') {
array[x][y] = ' ';
y = y + 1;
array[x][y] = '0';
}
break;
default:
break;
}
printArray(array);
}
System.out.println("你吊炸天了,通关了!");
}
public static void printArray(char[][] array) {
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]);
}
System.out.println();
}
}