二维数组

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循环都可以输出,但是要注意数组下标越界。

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值