【发布时间】:2010-01-21 00:07:23
【问题描述】:
我试图理解 Java 中的多维数组,但我认为它适用于任何语言。请考虑一下我在网上找到的这个 sn-p:
//************************************
// static array initialization
//************************************
byte[][] smallArray = { { 10, 11, 12, 13 },
{ 20, 21, 22, 23 },
{ 30, 31, 32, 33 },
{ 40, 41, 42, 43 }, };
// Display the array element at row 2, column 3
System.out.println(smallArray[1][2]);
// Value is 21
为什么是 21 岁?我以为是 22 岁。
我查了这个,因为我想弄清楚在这种情况下长度是什么意思:
public class Pieces {
int thePieces[][][];
public Pieces(){
}
public int[][][] createPieces(){
/* pieces in order below
**** [0]
**
**
*
****
*
****
***
*
**
**
**
** [6]
*
*
*
*/
int myPieces [][][] =
{
{ //square
{0,0},
{1,0},
{1,1},
{0,1}
},
{ //T
{-1,0},
{0,0},
{0,1},
{1,0}
}
};
thePieces = myPieces;
return thePieces;
}
public void printPieces(){
System.out.println(thePieces[0][0].length);
}
}
我正在尝试通过创建俄罗斯方块克隆来学习 java。我不明白为什么需要长度才能使用[][]。这是我上班的唯一途径。我尝试了 thePieces[0][0][0].length 但得到了一个我不明白的错误?
为什么我不必输入 [][][] 来获取参考?我在网上看到数组的第一个“级别”被引用为 myArray.length 而不是 myArray[].length。那我在说什么 myArray[][].length (它似乎是第 2、3 级,但我没有得到我期望的结果)?
我运行我的代码并得到 2。我不知道为什么它是 2。是因为我三级有两套吗?由于四组积分,我预计会得到四个。
感谢您帮助我理解。
编辑:我知道为什么它是两个。它给了我最里面的两分。如果我想要四个,我会使用 thePieces[0].length。但是第一个例子呢?是不是笔误?
【问题讨论】:
标签: java multidimensional-array