二维数组-第7天

二维数组


1、二维数组

数组中的数组:二维数组[][]

int[] arr= new int[3];//一维数组

int[][] arr=new int[3][4];//定义了名称为arr的二维数组,二维数组中有3个一维数组。每一个一维数组中有4个元素。

//3是二维数组的长度,4是每一个二维数组中一维数组的长度。


int[][] arr=new int[2][3];

int[1][2]=78;

int[0][3]=90;//错误。角标越界,超出了范围。

system.out.println(arr);//打印[[I@17164。两个[[说明打印二维数组的地址

system.out.println(arr[0]);//打印[I@1fb8ee3。一个[说明一维数组,打印的是一维数组的地址。

system.out.println(arr][0][0]);//打印0

运行结果:

 


打印二维数组和一维数组的长度
  1. class Array2Demo
    {
           public static void main(String[] args){
                 int [][] arr = new int[3][2];
                 //打印二维数组的长度,其实就是一位数组的个数
                System.out.println(arr.length );
                 //打印二位数组中角标为1一位数组的长度
                System.out.println(arr[1].length );
          }
    }

运行结果:




二维数组的初始化过程:

int[][] arr=new int[3][];

system.out.println(arr);//打印[[I@de6ced。两个[[说明打印二维数组地址的值。

system.out.println(arr[0]);//打印null。二维数组存的3个一维数组,[0],[1],[2]的初始化值默认为null。

system.out.println(arr[0][0]);//打印NullPointerException由于arr[0]为null,通过它获取一维数组角标为0的元素肯定会报空指针异常错误!

 


int[][] arr=new int[3][];

arr[0]=new int[3];

arr[1]=new int[1];

arr[2]=new int[2];

system.out.println(arr.length);//打印的是二维数组的长度3;

system.out.println(arr[0].length);//打印的是二维数组中第一个一维数组的长度3

具体过程参考下图:

 


需求:求二维数组元素的和。

大圈套小圈,用for语句实现。

int[][] arr={{3,5,1,7},{2,3,5,8},{6,1,0,2}}

int sum=0;

for(int x=0;x<arr.length;x++)

{

for(int y=0;y<arr[x].length;y++)

{

sum=sum+arr[x][y];

}

}

system.out.println("sum="+sum);

 

 

2、二维数组练习

int[] x;       intx[];//这两种定义方式是可以的。

int[][] y;    inty[][];    int[] y[];//这3种定义也是可以的。

int[] x,y[];//x一维,y维。

对应:

int[] x;

int[] y[];

请问下面的表达式是否正确:

x[0]=y;//error错的,x一维,y二维。

y[0]=x;//yes对的

y[0][0]=x;//错。二维数组不对应一维数组。

x[0][0]=y;//错。x根本不是二维数组。

y[0][0]=x[0];//对。元素给元素赋值。

x=y;//错。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值