首先,这是代码:
public class Test{
public static void main(String args[]){
short[][] b = new short[4][4];
short[][] big = new short[2][2];
short b3 = 8;
short b2 [][][][] = new short [2][3][2][2];
// insert code here that will allow the code to compile
}
}
这是课本上的一道题,以下是错误的两个答案:
b2[0][1][1] = b;
这里的解释是,它尝试在需要一维数组的地方分配一个二维数组。有人可以解释一下吗?我根本看不到一维数组在代码中的位置。
b2[0][2][1] = b[1][0];
对这个错误答案的解释是,它尝试在需要短数组的地方分配一个原始的短值。我对此感到困惑,因为我在这个答案中没有看到原始的短路?
最佳答案
在java中,多维数组实际上是数组的数组。
您可以将其视为每次对数组进行索引(这意味着您在其后面添加 [i])时都会丢失一个维度。
b
给出一个二维数组,
b[i]
给你一个一维数组,并且
b[i][j]
给你一个short
(这是一个原语)
b2[0][1][1]
还应该给你一个一维数组,但你试图在那里放置一个二维数组,这就是问题所在。
现在,对于第二个错误答案,b[i][j]
为您提供了一个原语。,这就是您尝试将一维数组放在应该放置的位置。
关于java - 二维和一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13696648/