Java数组之二维数组与多维数组(基础详解)
2018-01-05 21:11
344 查看
Java数组之二维数组与多维数组
二维数组
二维数组也是个容器 保存的是 相同数据类型的一维数组 书写公式: 数据类型[][] 数组名 = 初值; 例如: int[][] array = new int[3][4]; 代表的是 这个二维数组中有3个一维数组 这3个一维数组有4个元素 // 打印二维数组的长度 相当于打印 数组中 有多少个元素 System.out.println(array.length);//打印二位数组中有几个元素 //打印二维数组中一维数组有几个元素 System.out.println(array[0].length);
第一方式二:可以把数组中元素定义出来 例如: int[][] array = new int[][]{ {1, 2, 3, 4}, {2, 5, 6, 8}, {3, 5, 8, 11} } //遍历数组 for(i = 0; i < array.length;i++){ for(j = 0; j < array[i].length; j++){ System.out.print(array[i][j] + " "); } System.out.println(); }
多维数组
三维数组 是一个容器 保存了多个 相同数据类型的二维数组 例如: int [][][] array = new int[2][3][4]; 有两个二维数组 每个二维数组 有3个一维数组 每个一维数组 有4个元素 定义一个三维数组[2][2][3] int[][][] arr = new int[][][] { { {1, 2, 3}, {2, 3, 4} }, { {3, 4 ,5}, {4, 5, 6} } }; //遍历这个数组 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 = arr[i][j][k] + sum; } System.out.println(); } System.out.println(); } System.out.println(sum);
拓展:二维数组小迷宫
二维数组迷宫 1.打印地图 --- 二维数组的遍历 初始坐标 array[1][1] 结束坐标 array[1][9] 2.如何让0走起来 switch 判断 通过修改 横纵坐标 让'0' 走起来 如何碰到墙'#' 不移动 可以先把要走的位置的元素取出来 判断一下 是不是墙 是墙 就不动 不是墙 再 进行移动 3.循环输入(循环的停止条件 就是结束坐标位置 从 ' ' 变成 '0') 如果有明确的 停止循环的条件时 用while循环 比较方便 public static void main(String[] args) { // 有8个一维数组 每个数组中 有10个元素 // 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[x][y] != array[ex][ey]) { //提示输入 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 "s": 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 "d": //判断是不是墙 if (array[x][y + 1] != '#') { //把原来改空格 array[x][y] = ' '; //向左移动 y = y + 1; // 新位置 变成0 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(); } } Day.3
相关文章推荐
- 【Java基础之多维数组访问】访问多维数组时潜在的性能问题
- JAVA基础:二维数组初始化
- Java基础--关于分支、循环、数组的部分练习题及详解
- Java基础-二维和三维数组
- C++程序员学Java系列之十三:多维数组之二维数组
- 黑马程序员-----java基础------for循环结构----do...while循环----while循环------方法---数组(一维,二维)
- Java基本功练习八(多维数组[二维、三维、模拟评卷系统、九宫格验证])
- java基础之二维数组不定义行数
- java数组基础详解
- JAVA基础之一维数组和多维数组
- Java数组之二维数组、多维数组(迷宫实例)
- java基础之二维数组-杨辉三角
- Java基础知识——Java数组详解
- Java 基础(4)----Java数组详解
- 黑马程序员_Java基础_04数组main函数args详解、数组排序、二分查找实例
- Java学习之二维数组定义与内存分配详解
- Java 多维数组遍历详解
- Java学习之二维数组定义与内存分配详解
- Java基础与案例开发详解の数组及常用技巧
- Java学习之二维数组定义与内存分配详解