黑马程序员技术交流社区

标题: 求助。 [打印本页]

作者: Y_木头人    时间: 2015-1-5 21:43
标题: 求助。
class ErweiShuzu
{
        public static void main(String[] args)
        {
                int[][] arr=new int[4][];//后面括号内添加数字有没有影响?为什么?
                arr[0]=new int[]{1,2};
                arr[1]=new int[]{1,2,3};
                arr[2]=new int[]{1,2,3,4};
                arr[3]=new int[]{1,2,3,4,5,6};
                int sum=0;
                for (int i=0;i<arr.length;i++)
                {
                        int groupSum=0;
                        for (int j=0;j<arr.length;j++)
                        {
                                groupSum+=arr[j];
                        }
                        sum+=groupSum;
                        System.out.println("第"+(i+1)+"组的和为"+groupSum);
                }
                System.out.println("总和为"+sum);
        }
}
作者: 独自的旅程    时间: 2015-1-5 21:49
可以添加,但是如果添加的话,那么每个一维数组的长度都相等的了。
作者: chudaming213    时间: 2015-1-6 21:23
我试了一下没有影响,我分析应该是因为二维数组中存储的是一维数组的地址, arr[0]=new int[]{1,2};             arr[1]=new int[]{1,2,3};                arr[2]=new int[]{1,2,3,4};                arr[3]=new int[]{1,2,3,4,5,6};这几句用二维数组中的元素(一维数组)指向new出的数组对象;所以不会有影响
作者: Y_木头人    时间: 2015-1-6 22:23
独自的旅程 发表于 2015-1-5 21:49
可以添加,但是如果添加的话,那么每个一维数组的长度都相等的了。

已经解决了,谢谢。
作者: Y_木头人    时间: 2015-1-6 22:28
chudaming213 发表于 2015-1-6 21:23
我试了一下没有影响,我分析应该是因为二维数组中存储的是一维数组的地址, arr[0]=new int[]{1,2};        ...

嗯,相当于给它重新赋值了,所以无论它里面的数值是多少,都不会有影响的,谢谢。。




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