我创建了一个二维数组并且无法添加值,我以前常常看到它可能在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,我尝试了数值。
答案 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];