Java数组(二维数组、多维数组)
2018-01-05 21:50
309 查看
二维数组
定义:
是个 保存相同数据类型(一维数组)的 容器
书写:
数据类型[][] 数组名 = 初值;
举例:
// 该二维数组中有3个一维数组 每一个一维数组的长度为4 int[][] array = new int[3][4]; // 打印二维数组的长度 相当于打印数组中有多少个元素 System.out.println(array.length); // 定义方式二:可以吧数组中元素定义出来 /* * 定义一个二维数组 * 二维数组中 有3个一维数组 * 1,2,3,4 / 2,34,234,11 / 23,44,66,55 */ // 三行四列 int[][] array = new int[][]{ {1, 2, 3, 4}, {2, 34, 234, 11}, {23, 44, 66, 55} }; // 遍历数组 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(); }
多维数组:
定义:
是 保存 多个相同数据类型(二维数组)的 容器
举例:
// 有两个二维数组 每个二维数组中 有三个一维数组 每个一维数组有四个元素 //int[][][] arr = new int[2][3][4]; // 定义一个三维数组 [2][2][3]{} // 2层2行3列的 三维数组 --- 羊肉串 int[][][] arr = new int[][][] { { {1, 2, 3}, {1, 2, 4}, }, { {2, 3, 4}, {1, 4, 5}, } }; // 遍历数组 int sum = 0; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { for (int k = 0; k < arr[i][j].length; k++) { //System.out.print(arr[i][j][k] + " "); sum = sum + arr[i][j][k]; } //System.out.println(); } //System.out.println(); } System.out.println(sum);
迷宫(二维数组)
分析:
1.打印地图 初始坐标 array[1][1] 结束坐标 array[1][9] 2.如何让'0'走起来 通过修改 横纵坐标 让'0'走起来 如何碰到墙'#' 不移动 可以先把要走的位置的元素 取出来判断一下 是不是墙 是墙就不动 不是墙再进行移动 3.循环输入(循环的停止条件 就结束坐标位置 从' '变成'0') 如果有明确的停止的条件 就是用while循环 比较方便
代码:
// 打印地图的方法 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(); } }
// 有8个一维数组 每个一维数组中有10个元素 // array[1][9] --- 出口 // array[1][1] d ---> array[1][1] == ' ' // ---> array[1][2] == '0' // array[1][2] s ---> array[2][2] == '0' char[][] array = { //y 0 1 2 3 4 5 6 7 8 9 {'#','#','#','#','#','#','#','#','#','#'},//0 - x {'#','0',' ',' ',' ',' ','#','#',' ',' '},//1 {'#','#',' ','#','#','#','#','#',' ','#'},//2 4000 {'#',' ',' ',' ',' ','#','#','#',' ','#'},//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 = 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] = ' '; // 向左移动 修改坐标 + 1 y = y + 1; // 新位置 变成 '0' array[x][y] = '0'; } break; default: break; } // 修改完毕后 再打印一遍地图 printArray(array); } System.out.println("恭喜你通关了");
相关文章推荐
- java 二维数组,三维数组 ,糊糙数组,多维数组示例代码
- java---二维数组与多维数组
- java数组-二维数组及多维数组
- 【Java学习笔记之九】java二维数组及其多维数组的内存应用拓展延伸
- java中二维数组(多维数组)的理解认识
- java中获取二维数组或者多维数组第几维的方法
- 黑马程序员----------java基础知识(6)之数组查找和二维数组及其应用
- Java数组排序基础算法,二维数组,排序时间计算,随机数产生
- 第十二天 二维数组与多维数组
- java中多维数组的clone容易引起误解
- php php打乱数组二维数组、多维数组
- java学习初探八之数组一维数组、二维数组
- Java二维数组是假的,Java只有一维数组
- JAVA基础(五) 数组、二维数组以及内存中的数据存储问题
- JAVA里面一维数组和二维数组哪个速度更快?
- 一维数组转化为二维数组(java)
- Java中的多维数组
- 【Java基础之多维数组访问】访问多维数组时潜在的性能问题
- Java多维数组各轴长度可以不对齐
- Java中_多维数组和对象