二维数组

1,二维数组声明:

        元素数据类型 [][] 数组变量名   int[][] array

        元素数据类型 数组变量名 [][]   int array[][]

        元素数据类型[] 数组变量名[]     int[] array[]

2,二维数组的初始化

   分为静态初始化和动态初始化

   静态初始化

     int [][] array ={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}

        上述代码创建了一个4X3的二维数组,其中第一个元素是{1,2,3},第二个元素是{4,5,6},第三个元素是{7,8,9},第四个元素是{10,11,12}      如图所示

                       

                                 
                    二维数组
严格意义上来说,java不存在二维数组,只存在一维数组,只不过数组元素也是一个一维数组

      动态初始化:new 数组元素类型 [高维数组长度][低纬数组长度]

      高维数组是最外面的数组,低纬数组是每个元素的数组,

      int [][] array = new int[4][3]

         4是高维数组下标索引,3是低纬数组下标索引

        二维数组

二维数组示例:

             /**
 * 二维数组
 * @author Administrator
 *
 */
public class ShuZu {
public static void main(String[] args) {
int [][] array = {{1,2,3},{-11,-12,13},{21,22,23},{31,32,33}};
    //动态数组
    double [][] array1 = new double[4][3];
    //计算array1的绝对值,结果保存到double array2中
    for(int i = 0 ;i<array.length;i++) {
    for(int j = 0;j<array[i].length;j++) {
    array1 [i][j] =    Math.abs(array[i][j]);
   
    }
    }
    //遍历输出结果数组
    for(int i = 0;i <array1.length;i++) {
    for(int j = 0;j<array1[i].length;j++) {
    System.out.print(array1[i][j] + " ");
    }
    System.out.println();
    }

}
   

}

不规则数组:

 int [][] array = {{1,2},{21},{31,32,33},{41,42}}

  高维数组4个元素,但是低纬数组个数不定

      二维数组

  动态初始化不规则数组比较麻烦,它不能new[4][3],而是先new高维数组,然后低维在一个一个new

     如 int [][] array = new int[4][];

      array [0] =  new int[2];

      array[1] = new int[1];

      array[2] = new int[3];

      array[3] = new int[2];

      二维数组示例:

          /**
 * 不规则数组
 * @author Administrator
 *
 */
public class Buguize {
public static void main(String[] args) {
int [][] array = new int[4][];
array[0] = new int[2];
array[1] = new int[1];
array[2] = new int[3];
array[3] = new int[3];
 
for(int i = 0;i<array.length;i++) {
for(int j = 0;j<array[i].length;j++) {
array[i][j] = i + j;
}
}
 
for (int[] is : array) {
for (int i : is) {
System.out.print(i + " ");

}
System.out.println();

}
 
// 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();
// }
 
}



}

for循环和for-each循环都可以输出,但是要注意数组下标越界。