识别二维阵列中的.length

时间:2011-09-02 14:07:05

标签: java arrays

这里使用.length有什么用?在下面的代码中可以用.length代替什么?我只是想更好地理解代码,明天考试! W00t!

public class twoDimension{
  public static void main(String[] args) {
    int[][] a2 = new int[10][5];
    for (int i=0; i<a2.length; i++) {
      for (int j=0; j<a2[i].length; j++) {
        a2[i][j] = i;
        System.out.print(" " + a2[i][j]);
      }
      System.out.println("");
    }
  }
}

3 个答案:

答案 0 :(得分:3)

您已声明了一个int类型数组并对其进行了初始化。

第一个方括号内的

10表示您将为该行存储10个值,并且是数组'n'的大小,其中n = 10。行长为10。

第二个方括号内的

5表示您将为该列存储5个值,并且是数组'n'的大小,其中n = 5。列长度​​为5.

在这种情况下,您有一个包含10个位置的数组

streetX[house_1]  
streetX[house_2]    
streetX[house_3]  
streetX[house_4]  
streetX[house_5]  
streetX[house_6]  
streetX[house_7]  
streetX[house_8]  
streetX[house_9]     
streetX[house_10]  

并且每个位置内部是另外5个不同的位置

{house_i[room_number1], house_i[room_number2], house_i[room_number3], house_i[room_number4], house_i[room_number5]} 

其中我可以代表1到10中的任何一个

把它想象成街上的10栋房子。每个房子有5个房间。每栋房屋都有一个独特的地址,以区别于街道上的其他房屋。以同样的方式,一个房子中的每个房间将与其余房间不同。你现在可以在每个房间保留不同的东西。

街道上有一系列房屋,每栋房屋都有一系列房间。

因此,您将拥有:您可以将a2视为streetX,即a2 = streetX

streetX有10个房子,因此,a2有10个位置。 a2的大小为10意味着长度为10.因此,a2.length = 10

注意:当您引用数组值时,索引从0'零'开始到'n-1'。数组索引始终是整数,可以是int,short,byte或char。

house_i(其中i的范围是1 t0 10)但我们通常将索引从0开始计算。我们将索引0到9. house_i类似于a2 [i]。有5个房间,因此有5个地点。任何a2 [i](即任何房屋a2 [0],a2 [1],a2 [2],a2 [3]或a2 [4]))的大小为5意味着长度为5.因此,a2 [i] .length = 5

 a2[house1][room1]  a2[house1][room2] a2[house1][room3] a2[house1][room4] a2[house1][room5]
 a2[house2][room1]  a2[house2][room2] a2[house2][room3] a2[house2][room4] a2[house2][room5]  
 a2[house3][room1]  a2[house3][room2] a2[house3][room3] a2[house3][room4] a2[house3][room5]  
 a2[house4][room1]  a2[house4][room2] a2[house4][room3] a2[house4][room4] a2[house4][room5]  
 a2[house5][room1]  a2[house5][room2] a2[house5][room3] a2[house5][room4] a2[house5][room5]  
 a2[house6][room1]  a2[house6][room2] a2[house6][room3] a2[house6][room4] a2[house6][room5]
 a2[house7][room1]  a2[house7][room2] a2[house7][room3] a2[house7][room4] a2[house7][room5]
 a2[house8][room1]  a2[house8][room2] a2[house8][room3] a2[house8][room4] a2[house8][room5]
 a2[house9][room1]  a2[house9][room2] a2[house9][room3] a2[house9][room4] a2[house9][room5]
a2[house10][room1] a2[house10][room2] a2[house10][room3] a2[house10][room4] a2[house10[room5]

注意:当您引用数组值时,索引从0'零'开始到'n-1'。数组索引始终是整数,可以是int,short,byte或char。

如果n = 10,我们将得到0 ... 9
如果n = 5,我们将得到0 ... 4

例如,streetX [house1] [room1] = a2 [house1 [room1]将成为a2 [0] [0]

最终,您将拥有:

a2[0][0] a2[0][1] a2[0][2] a2[0][3] a2[0][4]

a2[1][0] a2[1][1] a2[1][2] a2[1][3] a2[1][4]  

a2[2][0] a2[2][1] a2[2][2] a2[2][3] a2[2][4]   

a2[3][0] a2[3][1] a2[3][2] a2[3][3] a2[3][4]   

a2[4][0] a2[4][1] a2[4][2] a2[4][3] a2[4][4]   

a2[5][0] a2[5][1] a2[5][2] a2[5][3] a2[5][4]  

a2[6][0] a2[6][1] a2[6][2] a2[6][3] a2[6][4]   

a2[7][0] a2[7][1] a2[7][2] a2[7][3] a2[7][4]   

a2[8][0] a2[8][1] a2[8][2] a2[8][3] a2[8][4]   

a2[9][0] a2[9][1] a2[9][2] a2[9][3] a2[9][4] 

外部for ...循环将重复10次,记住,a2.length = 10并且内部for ...循环重复5次,记住,a2 [] .length = 5

你初始化了a2 [i] [j] = i,因此对于每个内部循环,你将把i(房子)的索引存储为每个房间的房子的价值或数量。

因此,当您执行程序时,您将得到以下打印输出或结果。

计算行数和列数,并观察每行的值是否相同。

0 0 0 0 0
 1 1 1 1 1  2 2 2 2 2
 3 3 3 3 3
 4 4 4 4 4
 5 5 5 5 5
 6 6 6 6 6
 7 7 7 7 7
 8 8 8 8 8
 9 9 9 9 9

对于数组,您可以使用[array_object_name] .length或指定数字大小。例如。在示例程序中a2.length或10,或a2 [i] .length或5。其中i等于0,1,2,3中的任何一个。注意.length中的长度是一个静态变量(你可以从这里http://download.oracle.com/javase/tutorial/java/nutsandbolts/variables.html阅读更多关于静态变量的知识,并了解静态方法和静态类)

总之,长度是数组的大小

您可以从此处了解有关数组的更多信息 - http://javapapers.com/core-java/java-array/

答案 1 :(得分:0)

  

这里使用.length有什么用?

与一维数组没有区别:要获取数组中的元素数,如果将二维数组视为表,则假设第一个.length是行长度,第二个.length是列长度。得到它?

  

在下面的代码中可以用.length代替什么?

你在宣言中看到了什么(准确的结构)?

答案 2 :(得分:0)

a2.length是行数。在这种情况下,外循环将迭代10次。 a2 [i] .length是一个特定行的长度。