java - 二维和一维数组

标签 java arrays short

首先,这是代码:

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/

相关文章:

java - 如何使用 JPA 映射类的 Hashtable 组件?

java - Hibernate 创建 SQLQuery。如何获取 boolean 值

javascript - 提交之间不能清空数组

java - 如何在 Java 中将短片打印为无符号短片

c - 不确定为什么这个 Actor 阵容有效

Java - Servlet post 参数编码错误

java - 在JAVA中将引用变量声明为接口(interface)类型有什么好处?

c# - 列表、数组和 IEnumerable 协方差

iphone - 如何创建可变的 CGImageRefs 数组?

c++ - 解码无符号短值的函数