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)就是第二行的第四个数字,也就是第二个集合的第四个元素。
这样说应该明白了吧?呵呵

关于java中二维数组输出的问题
所谓的二维数组其实是数组的数组(每个一维数组的长度可以不同,所以二维数组也称为锯齿数组)。假设有:int[][] arr={new int [1] {1},new int [2] {2,3},new int [3] {4,5,6}};则二维数组arr.length等于3,表示它由3个一维数组组成,即3行。arr[0].length表示第1个一维数组的长度...

JAVA二维数组的一个很简单的问题,我是初学者,我实在想不通,帮我解答...
int myarr[][] = {{19,1},{48,11}};表示 myarr是一个二维数组 数组0的值是{19,1} 数组1的值是{48,11} 现在访问的是myarr[1][1] 肯定就是访问数组1的值1 所以肯定是11了 每个值都是独立的 为什么改前三个会影响到最后的那个 你要这么说我反而觉得很想不通 感觉你应该是基础比...

Java二维数组问题
数组的方括号中的是数组下标,不是值,如:arr[0][0] = new String[0]["字符串张三"];。3、(1)所有使用变量需定义:arr[3][0] = new Object[3][Obj];次数要使用Obj变量,必须有定义才可,如:Object Obj = new Object();(2)for(int i=0;i<=Object.length;i++)和for(int j=0...

java关于二维数组的问题。
首先这个二维数组可以看成是一个标准的 3X3 的矩阵 第一个循环 :for(int i = 0;i<arr.length;i++){ for(int j=0;j<arr.length;j++){ System.out.print(arr[i][j]);} System.out.println();} 第一轮大循环:i 取值为0时,j取值0,1,2,则打印:arr[0][0],arr[0][1],a...

Java数组—二维数组详解
深入解读Java中的二维数组,探索其定义与实现。二维数组,其实质是数组的数组,用于存储多个一维数组,其结构由多行多列构成,能够更好地组织与管理数据。初始化二维数组,通常通过定义数组的大小来实现。例如,定义一个包含3行4列的二维数组。获取数组元素,与一维数组类似,通过索引访问。遍历二维数组时,...

java输出二维数组问题!为什么我输出的时候的会自动换行?我按书上一模...
println()就是print line,在输出信息后,加上换行,所以你得到了,分开的0. 试一下Java里的System.out.printf()吧,和C是一样的。

java 的二维数组是按行还是列 存储的?C语言为什么是按行存储的,这样存...
在 Java 中,二维数组通常是按列存储的,每个列之间用制表符分隔。这是因为 Java 中的数组是对象,而对象通常按列存储在内存中。在 Java 中,二维数组的行索引是从 0 开始的,而列索引是从 1 开始的。在 C 语言中,二维数组通常是按行存储的,每个行之间用制表符分隔。这是因为 C 语言中的数组...

java二维数组倒置的代码怎么理解,求解析,不太看得懂
这个是把2行3列的矩阵 编程 2列3行 先读第一行的 3个数 分别放入第一列的3行 在读第二行的3个 放入第二列的3行

一个JAVA输出二维数组的简单程序看看有什么问题,谢谢
public class ArrayInit { String[][] A = new String[4][4];public void printString(){ for(int i=0;i<=4;i++){ for(int j=0;j<=4;j++){ for(String[] b1:A)\/\/\/这里改为A啊!!!{ System.out.print(b1.toString()+"\\t");} } System.out.println();} \/\/return n...

java高手:java定义二维数组问题
int a[][] = new int[3][2]; 表示定义一个三行二列的二维数组,但是a[0] = {1,6}; 是对一维数组进行赋值,而a是二维数组无法使用一维数组的赋值方法,所以程序会报错。该代码的正确方法应该是:int a[][] = new int[3][2];a[0][0]=1;a[0][1]=6;...

相似回答