二维数组理论干货

tech2022-08-18  149

二维数组1

看不懂就看后面的综上详讲

 

package com.bjpowernode.javase.array; /* 一维数组 int[] array={100,200,300}; 二维数组 int[] array={?,?,?}; int[] array={{},{},{}}; ?保存的就是一维数组------所以二维数组保存的是一维数组 所以二维数组是特殊的一维数组 只是二维数组多了一个中括号int[][] array={{},{},{}}; 比如 int[][] a = { {100, 200, 300}, {30, 20, 40, 50, 60}, {6, 7, 9, 1}, {0} }; 关于java中的二维数组 1、二维数组其实是一个特殊的一维数组,特殊在这个一维数组当中的每一个元素是一个一维数组。 2、三维数组是什么? 三维数组是一个特殊的二维数组,特殊在这个二维数组中每一个元素是一个一维数组。 实际的开发中使用最多的就是一维数组。二维数组也很少使用。三维数组几乎不用。 3、二维数组静态初始化 int[][] array = {{1,1,1},{2,3,4,5},{0,0,0,0},{2,3,4,5},{2,3,4,5},{2,3,4,5},{2,3,4,5}}; */ public class ArrayTest09 { public static void main(String[] args) { // 一维数组 int[] array = {100, 200, 300}; System.out.println(array.length); // 3 System.out.println("======================="); // 二维数组 // 以下代码当中:里面的是4个一维数组。 int[][] a = { {100, 200, 300}, {30, 20, 40, 50, 60}, {6, 7, 9, 1}, {0} }; System.out.println(a.length); // 4 不是13是指的a里面的数组 System.out.println(a[0].length); // 3 指的a里面的数组 System.out.println(a[1].length); // 5 System.out.println(a[2].length); // 4 System.out.println(a[3].length); // 1 // 里面的是5个一维数组。 int[][] a2 = { {100, 200, 300}, {30, 20, 40, 50, 60}, {6, 7, 9, 1}, {0}, {1,2,3,4,5} }; } } public class ArratTest1 { public static void main(String[] args) { //二维数组静态初始化 int[][] a={{1,2,3},{4,5,6},{7,8,9}}; //与静态初始化是一样的int[] a={1,2,3,4,5,6,7}; //二维数组长度 System.out.println(a.length); //二维数组长度指的是里面的一维数组,不是指元素 System.out.println(a[0].length); //a是表示二维数组里面所有一维数组(相当于一维数组里面所有的元素,只不过这里是二维,所以是全部的一维数组) //a是变量,它接收了所有一维数组所以 a = 一堆/所有一维数组 //a它有表示二维数组所以 一个二维数组 = 一堆一维数组组合 //因为 a = 一堆/所有一维数组,a[0]表示一堆/所有里面的第一个数组 //相当于一维数组里面的第一个元素,既然是元素,就肯定有方法和属性之类的 //数组里面有length属性,所以在这里可以访问二维数组里面第一个元素(第一个一维数组)的length属性 } } /* 二维数组其实是一个特殊的一维数组,特殊在这个一维数组当中的每一个元素是一个一维数组 同理可推三维数组 */

 

 

package com.bjpowernode.javase.array; /* 关于二维数组中元素的:读和改。 a[二维数组中的一维数组的下标][一维数组的下标] a[0][0]:表示第1个一维数组中的第1个元素。 a[3][100]:表示第4个一维数组中的第101个元素。 注意:对于a[3][100]来说,其中 a[3] 是一个整体。[100]是前面a[3]执行结束的结果然后再下标100. */ public class ArrayTest10 { public static void main(String[] args) { // 二维数组 int[][] a = { {34,4,65}, {100,200,3900,111}, {0} }; // 请取出以上二位数中的第1个一维数组。 int[]a0=a[0]; //因为是第1个一维数组所以a[0],再因为返回的是一维数组所以这里是int[] int[] 我是第1个一维数组 = a[0]; //a[0]是第一个数组{34,4,65} //也就是说int[] 我是第1个一维数组={34,4,65} int 我是第1个一维数组中的第1个元素 = 我是第1个一维数组[0]; //我是第1个一维数组[0]是表示找数组名为我是第1个一维数组的第一个元素 System.out.println(我是第1个一维数组中的第1个元素); // 以下代码的由来是因为以上代码的合并导致的。 System.out.println(a[0][0]); // 取出第2个一维数组当中第3个元素 System.out.println("第二个一维数组中第三个元素:" + a[1][2]); // 取出第3个一维数组当中第1个元素 System.out.println("第3个一维数组中第1个元素:" + a[2][0]); // 改 a[2][0] = 11111; System.out.println(a[2][0]); // 注意别越界。 //java.lang.ArrayIndexOutOfBoundsException //System.out.println(a[2][1]); } }

  

综上详讲  

public class ArratTest1 { public static void main(String[] args) { //二维数组静态初始化 int[][] a={{1,2,3},{4,5,6},{7,8,9}}; //与静态初始化是一样的int[] a={1,2,3,4,5,6,7}; //二维数组长度 System.out.println(a.length); //二维数组长度指的是里面的一维数组,不是指元素 System.out.println(a[0].length);//当作一维数组的length来判断长度 //a是表示二维数组里面所有一维数组(相当于一维数组里面所有的元素,只不过这里是二维,所以是全部的一维数组) //a是变量,它接收了所有一维数组所以 a = 一堆/所有一维数组 //a它有表示二维数组所以 一个二维数组 = 一堆一维数组组合 //因为 a = 一堆/所有一维数组,a[0]表示一堆/所有里面的第一个数组 //相当于一维数组里面的第一个元素,既然是元素,就肯定有方法和属性之类的 //数组里面有length属性,所以在这里可以访问二维数组里面第一个元素(第一个一维数组)的length属性 //二维数组中元素的:读和改。 // a[二维数组中的一维数组的下标][一维数组的下标] // a[0][0]:表示第1个一维数组中的第1个元素。 // a[3][100]:表示第4个一维数组中的第101个元素。 // 注意:对于a[3][100]来说,其中 a[3] 是一个整体。[100]是前面a[3]执行结束的结果然后再下标100. int[][] b = { {34,4,65}, {100,200,3900,111}, {0} }; // 请取出以上二位数中的第1个一维数组。 int[]q =b[0]; //因为是第1个一维数组所以a[0] //取的是什么类型就用什么类型去接收,这里取的是一维数组就用一维数组去接收 //所以返回的是一维数组所以这里是int[] int[] 我是第1个一维数组 = b [0]; //b[0]是第一个数组{34,4,65} //也就是说int[] 我是第1个一维数组={34,4,65} int 我是第1个一维数组中的第1个元素 = 我是第1个一维数组[0]; //我是第1个一维数组[0]是表示找数组名为我是第1个一维数组的第一个元素 System.out.println(我是第1个一维数组中的第1个元素); // 以下代码的由来是因为以上代码的合并导致的。 System.out.println(b[0][0]); // 取出第2个一维数组当中第3个元素 System.out.println("第二个一维数组中第三个元素:" + a[1][2]); // 取出第3个一维数组当中第1个元素 System.out.println("第3个一维数组中第1个元素:" + a[2][0]); // 改 a[2][0] = 11111; System.out.println(a[2][0]); // 注意别越界,越界就产生java.lang.ArrayIndexOutOfBoundsException错误 //System.out.println(a[2][1]); } }

   

package com.bjpowernode.javase.array; /* 二维数组的遍历 */ public class ArrayTest11 { public static void main(String[] args) { // 二维数组 String[][] array = { {"java", "oracle", "c++", "python", "c#"}, {"张三", "李四", "王五"}, {"lucy", "jack", "rose"} }; // 遍历二维数组 for(int i = 0; i < array.length; i++){ // 外层循环3次。(负责纵向。) String[] 一维数组 = array[i]; // 负责遍历一维数组 for(int j = 0; j < 一维数组.length; j++){ System.out.print(一维数组[j] + " "); } // 输出换行符 System.out.println(); //不换行就是输出结果全是在一行上面 } // 合并代码 for(int i = 0; i < array.length; i++){ // 外层循环3次。(负责纵向。) for(int j = 0; j < array[i].length; j++){ System.out.print(array[i][j] + " "); } System.out.println(); } } }

   

package com.bjpowernode.javase.array; /* 动态初始化二维数组。 */ public class ArrayTest12 { public static void main(String[] args) { // 3行4列。 // 3个一维数组,每一个一维数组当中4个元素。 int[][] array = new int[3][4]; // 二维数组遍历 /* for (int i = 0; i < array.length; i++) { // 循环3次。 for (int j = 0; j < array[i].length; j++) { System.out.print(array[i][j] + " "); } System.out.println(); } */ // 静态初始化 int[][] a = {{1,2,3,4},{4,5,6,76},{1,23,4}}; printArray(a); // 没有这种语法,这是在调用方法的时候直接把二维数组内容放到调用方法的小括号里面 //不可以直接把数组内容传递到方法的小括号里面 //只能new出来放小括号里面或者是用变量接收再传递给方法 //printArray({{1,2,3,4},{4,5,6,76},{1,23,4}}); // 可以这样写。 printArray(new int[][]{{1,2,3,4},{4,5,6,76},{1,23,4}}); } public static void printArray(int[][] 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(); } } }
最新回复(0)