黑马程序员技术交流社区

标题: 一个关于二维数组的问题 [打印本页]

作者: 张俊飞    时间: 2013-12-15 19:03
标题: 一个关于二维数组的问题
我定义了一个二维的数组,例如int[][] a = new int[4][6],然后我输出了a.length(),结果是4,为什么不是10呢?
作者: Faner    时间: 2013-12-15 19:07
而为数组的长度其实就是指有几个一位数组!!
作者: Faner    时间: 2013-12-15 19:09
10  是指这个而为数组有10个元素组成的
作者: 豆晨阳    时间: 2013-12-15 20:16
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);//输出的是数组中总的元素数               
        }
}

作者: java--周群    时间: 2013-12-15 20:35
你这个定义的是一个二维数组,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.

新手吧   慢慢来一切都会好起来的。
作者: 绕世界流浪丶    时间: 2013-12-15 20:52
  1. int[][] a = new int[4][6]
复制代码

你这个数组表示 有4个一维数组  每个一维数组的长度是6
a.length()遍历的是有几个一维数组  
所以输出的为4
作者: 75100313    时间: 2013-12-15 21:57
二维数组可以看成是几个一维数组

作者: 雨的印记yp    时间: 2013-12-16 01:12
a的意思是定义了4个一维数组,每个一维数组长度为6.    a.length表示a有几个一维数组,所以是4个。  而a[0].length,a[1].length,a[2].length,a[3].length,表示各个一维数组的长度,所以都是6.
作者: Knife    时间: 2013-12-16 01:32
本帖最后由 Knife 于 2013-12-16 02:06 编辑

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

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

作者: 恨死我了    时间: 2013-12-16 09:52
a.length()只是遍历一维数组的元素个数,所以个数为4;a[i].length()可以遍历一维数组中某个元素的个数
作者: 翼展哈哈    时间: 2013-12-16 10:20
楼主您好,首先提供一段代码:
  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个元素。这是二维数组的引用指向问题。
希望可以帮到楼主。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2