A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张俊飞 中级黑马   /  2013-12-15 19:03  /  1437 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我定义了一个二维的数组,例如int[][] a = new int[4][6],然后我输出了a.length(),结果是4,为什么不是10呢?

评分

参与人数 1黑马币 +3 收起 理由
乔兵 + 3

查看全部评分

11 个回复

正序浏览
楼主您好,首先提供一段代码:
  1. public class Test {
  2.        
  3.         public static void main(String[] args) {
  4.                
  5.                 int[][] a = new int[4][6];
  6.                
  7.                 System.out.println(a);//打印结果是[[I@138ba593
  8.                 System.out.println(a[0]);//打印结果是[I@35235feb
  9.                
  10.                 System.out.println(a.length);//打印结果是4
  11.                 System.out.println(a[0].length);//打印结果是6
  12.         }

  13. }
复制代码

由代码运行结果可知,a是二维数组引用,a[0]、a[1]、a[2]、a[3]都是一维数组引用,a.length的结果是4,这说明二维数组引用a指向的是4(二维数组的行数)个一维数组引用a[0]、a[1]、a[2]、a[3];而a[0].length的结果是6,这说明四个一维数组引用分别指向指向6个元素。这是二维数组的引用指向问题。
希望可以帮到楼主。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
a.length()只是遍历一维数组的元素个数,所以个数为4;a[i].length()可以遍历一维数组中某个元素的个数
回复 使用道具 举报
Knife 中级黑马 2013-12-16 01:32:03
9#
本帖最后由 Knife 于 2013-12-16 02:06 编辑

问题:例如int[][] a = new int[4][6],然后我输出了a.length(),结果是4,为什么不是10呢?
a.length()是问你数组有几行,答案肯定是4啊。a.length是每行有多少个数据.
如果想求数组有多少个元素,可以用循环.

我也是新手,回答的不好请不要介意。大家一起学习!

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
a的意思是定义了4个一维数组,每个一维数组长度为6.    a.length表示a有几个一维数组,所以是4个。  而a[0].length,a[1].length,a[2].length,a[3].length,表示各个一维数组的长度,所以都是6.
回复 使用道具 举报
二维数组可以看成是几个一维数组
回复 使用道具 举报
  1. int[][] a = new int[4][6]
复制代码

你这个数组表示 有4个一维数组  每个一维数组的长度是6
a.length()遍历的是有几个一维数组  
所以输出的为4
回复 使用道具 举报
你这个定义的是一个二维数组,int[][] a = new int[4][6],比如a相当于一个大盒子,右边4就表示在大盒子中间有4个小空间,6代表4个小空间里面又划分了6个小空间,其实就相当于这样,int [][] a = {{a,b,c,d,e,f},{g,h,i,j,k,l},{m,n,o,p,q,r},{s,t,u,v,w,x}},,打印a数组的长度就是打印二维数组中一维数组的个数,即大盒子刚开始划分的4片空间,当然是4.

新手吧   慢慢来一切都会好起来的。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
public class DemoA {

       
        public static void main(String[] args)
        {
                int num = 0;
                int[][] arr        = {{1,3,6,7},{4,7,0},{7,3,8},{3,7,0,4}};               
                System.out.println(arr.length);//输出的是有几个一维数组也就是4
                for(int i=0;i<arr.length;i++)
                {
                        for(int j=0;j<arr[i].length;j++)
                        {
                                num++;
                        }
                }
                System.out.println("num="+num);//输出的是数组中总的元素数               
        }
}

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
10  是指这个而为数组有10个元素组成的
回复 使用道具 举报
而为数组的长度其实就是指有几个一位数组!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马