java二维数组中有不理解的

比如
public class Szqh{
public static void main(String[] args){
int[][] a;
a=new int[3][];
int[] sum=new int[3];
a[0]=new int[] {100,80,80,75,90};
a[1]=new int[] {50,60,60,65,55};
a[2]=new int[] {100,100,100,100,100};

for(int i=0;i<a.length;i++)
for(int j=0;j<a[i].length;j++)
sum[i]+=a[i][j];//X1行 这的i变量和j变量

for(int i=0;i<sum.length;i++)
System.out.println("合计= "+sum[i]);
}
}
X1行这个i变量是定义两位数组的个数的?j变量是一维数组的个数吗?
a[i][j的意思该怎么去理解了,我脑袋晕了!

二维数组可以看成是个表格,比如你问题中的这个数组就可以形象化为这样的一个表格(其中j是列数,因此j=5。i是行数,因此i=3):

数组编号j: 0 1 2 3 4
i
0 100 80 80 75 90
1 50 60 60 65 55
2 100 100 100 100 100

比如你打印a[2][4],即System.out.println(a[1][4]),那么打印出来的结果会是第2行,第5列的数值即55。
这么说明白了吗?

这个部分是定义二维数组的部分:
int[][] a; //建立一个名称是a的二维数组
a=new int[3][]; //定义这个数组的行数为3行
int[] sum=new int[3]; //建立一个名称是sum的一维数组
a[0]=new int[] {100,80,80,75,90}; //定义a这个二维数组的第一行空间为5个值,并填充进100,80,80,75,90

a[1]=new int[] {50,60,60,65,55}; //定义a这个二维数组的第二行空间为5个值,并填充进50,60,60,65,55

a[2]=new int[] {100,100,100,100,100}; //定义a这个二维数组的第二行空间为5个值,并填充进100,100,100,100,100

事实上这个部分可以写成:
int[][] a = new int[3][5]; //也就是说建立一个3行5列的二维数组
a[0][0] = 100;
a[0][1] = 80;
a[0][2] = 80;
……(中间省略了啊,太多太麻烦,不打了,照着表格写就好。)
a[2][4] = 100;

还有一种简单的定义方法:
int[][] a={{100,80,80,75,90},{50,60,60,65,55},{100,100,100,100,100}}; //内层有几段代表有几行,内层括号中间有几个数代表有几列。从这个就可以看出来了吧?二维数组实际上是两个一维数组套在一起的。可以把行看成是一维数组,把列当中的元素当成一个集合再分别放到行这个一维数组里边

希望你能明白吧,已经尽我所能的解释了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-07-29
x1行的i 是下标;j也是下标

a[i][j] 是一个2维数组;可以这么理解 i是行,j是列

a[2][4] 就是一个2行4列的2维数组;

a[2][4]={{100,200,300,400},{1,2,3,4}} 是一个2维数组
a[2][4]可以想象成这样:
100 200 300 400
1 2 3 4
2行,4列;
100对应的就是a[0][0]
a[0][3]=400
第2个回答  2008-07-29
j变量不是一维数组,是int的
你可以这样理解,呵呵看下页
a=new int[3][]; 是二维数组,
int[] sum=new int[3]; 是一维的
a[0]就是上面a[][]里面的其中一个一维的数组,a[1],a[2]相同
a[i][j]就是一个变量,是二维数组a里,位置在i,j上,
也可以理解为是一个一维数里的一个变量,是在a[i]里的第j个位置
第3个回答  2008-07-29
只要记住第一个数字表示的是行,第二个表示的是列就行了,也可以这样理解,第一个出现的是行,也就是有几个集合,第二个呢,可以理解为这个集合中有多少个元素,而a[i][j]就表示在这个二维数组中,位于(i,j)这个坐标的元素是什么,举个实例(2,4)就是第二行的第四个数字,也就是第二个集合的第四个元素。
这样说应该明白了吧?呵呵