JAVA基础——二维数组

二维数组的创建与应用

二维数组的创建

二维数组可以看做是特殊的一维数组,因此,二维数组的创建同样有两种方式。


1. 先声明,再用new运算符进行内存分配

//声明二维数组的语法
数组元素的类型 数组名字[][];
数组元素的类型[][] 数组名字;
//声明二维数组
int myarr[][];

同一维数组一样,二维数组在声明时也没有分配内存空间,同样使用new关键字来分配内存,然后才可以访问每个元素。对于高维数组,有两种为数组分配内存的方式:

(1) 直接为每一维分配内存空间

//为每一维分配内存
a =new int[2][4];

上述代码创建了二维数组a,二维数组a中包括两个长度为4的一维数组,内存分配图如下图所示:
在这里插入图片描述
(2)分别为每一维分配内存

//分别为每一维分配内存
a = new int[2][];
a[0] =new int[2];
a[1] =new int[3];

2. 声明的同时为数组分配内存

第二种方式同第一种实现的功能相同。使用这种方式为二维数组分配内存时,首先最左边维数的内存,然后单独地给余下的维数分配内存。通过第二种方式为二维数组分配内存,如图所示:
在这里插入图片描述

3. 二维数组的初始化

二维数组的初始化与一维数组的初始化类似,同样可以使用大括号完成。语法如下所示:

type arrayname[][]={value1,value2,value3.....valuen};
//type:数组数据类型
//arrayname:数组名称,一个合法的标识符
//value:数组中各元素的值

//初始化二维数组
int myarr[][]={{12,0},{23,8}};

初始化二维数组后,要明确数组的下标都是从0开始的。例如,上面的代码中myarr[1][1]的值为8。int型二维数组是以 int a[][]来定义的,所以可直接给 a[x][y] 赋值。

4. 使用二维数组

二维数组在实际应用中用的非常广泛。那么就需要我们牢牢的掌握这些知识,接下来我们通过一段简单的代码来进一步的了解。

public class Matrix{//创建类
    //主方法
    public static void main(String[] args){
        //定义二维数组
        int a[][]=new int[3][4];
        for(int i=0;i<a.length;i++){
        //循环遍历数组中的每个元素
            for(int j=0;j<a[i].length;j++){
            //将数组中的元素输出
                System.out.print(a[i][j]);
            }
            //输出空格
            System.out.println();
        }
    }
}

对于整型的二维数组,创建成功之后系统会赋值给数组中每个元素初始值。

二维数组遍历的两种方法

class printArray {
    public static void main(String[] args) {
        int[][] arr = {{1,2,3},{4,5},{6}};
        
        //调用方法1
        printArr1(arr);
        System.out.println("------");
        //调用方法2
        printArr2(arr);
        System.out.println("------");
    }
    
    //方法1
    public static void printArr1(int[][] arr) {
        for(int x=0; x<arr.length; x++) {
            for(int y=0; y<arr[x].length; y++) {
                System.out.print(arr[x][y]+" ");
            }
            System.out.println();
        }
    }
    
    //方法2
    public static void printArr2(int[][] arr) {
        //遍历二维数组中每一个一维数组
        for(int[] cells : arr) {
            //遍历一维数组中每一个元素
            for(int cell : cells) {
                System.out.print(cell+" ");
            } 
             System.out.println();
        }
    }
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值