JAVA基础之⼆维数组三维数组及应⽤⼆维数组
简单说明:
如何描述下⾯定义的⼆维数组
定义⽅式⼀:
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.String(array[i]));
java定义一维数组并赋值}
多维数组
三维数组 : 是容器保存多个相同数据类型的⼆维数组
描述下⾯定义的三维数组
定义⽅法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) {
//有8个⼀维数组每个⼀维数组中有10个元素
//array[0][0]
char[][] array = {
//y  0  1  2  3  4  5  6  7  8  9
{'#','#','#','#','#','#','#','#','#','#'},//0 ----- x
{'#','0',' ',' ',' ',' ','#','#',' ',' '},//1
{'#','#',' ','#','#','#','#','#',' ','#'},//2
{'#',' ',' ',' ',' ','#','#','#',' ','#'},//3
{'#',' ','#','#',' ','#',' ',' ',' ','#'},//4
{'#',' ','#','#',' ','#',' ','#','#','#'},//5
{'#',' ',' ',' ',' ',' ',' ','#','#','#'},//6
{'#','#','#','#','#','#','#','#','#','#'},//7
};
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') {
//提⽰输⼊ w a s d
System.out.println("请输⼊ w a s d");
//接收输⼊值
String string = Line();
//判断⼀下往哪⾥移动
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';
}
//向左移动修改坐标+1
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();        }
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论