java中的二维数组?

时间:2014-02-26 17:43:43

标签: java arrays

我创建了一个二维数组并且无法添加值,我以前常常看到它可能在Java中不一样。 代码是这样的:

   int location[][] = new int[LEN][2];
   location[0][0] = 50;
   location[0][1] = 0;
   location[1][0] = 50;
   location[1][1] = 50;

声明但没有问题,只能将值分配给数组。 注意:LEN大于2,我尝试了数值。

2 个答案:

答案 0 :(得分:2)

根据你的pastebin,你可以在方法体或代码的其他部分之外进行这些元素赋值,这些部分允许这种语句。

可能你的意思是将它们放在构造函数中:

public window() {
    location[0][0] = 50;
    location[0][1] = 0;
    location[1][0] = 50;
    location[1][1] = 50;
}

另请注意,在Java中,惯例是类应以大写字母开头。 window应为Window

答案 1 :(得分:0)

我的猜测是你有类似的东西:

LEN = 50;
int location[][] = new int[LEN][2];
location[0][0] = 50;
location[0][1] = 0;
location[1][0] = 50;
location[1][1] = 50;

你试过了:

location[50][0] = 24

这将失败,因为在Java数组中索引为0,这意味着当使用索引50时,您将获得数组索引超出范围的异常。

解释让我们看看;

int[] ray = new int[50];

大小为50,但必须读取分配值或读取值时,分配为0-49。这是50个位置,但索引为零。

如果您可以更具体地了解我们可以解决的实际错误,但您的代码看起来很合适。

编辑:

我刚检查过,看起来像是

int location [] [] = new int [len] [2] 根据另一个回答者的说法,它不适用于2D阵列。

您需要将其更改为

int [] [] location = new int [len] [2];