Java에서 다차원 배열을 이해하려고 노력하고 있지만 모든 언어에 적용되는 것으로 생각됩니다. 웹에서 찾은 스 니펫을 고려해보십시오.어떻게 다차원 배열을 참조합니까?
//************************************
// 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입니까? 나는 테트리스 클론을 생성하여 자바를 배우려고 노력하고
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);
}
}
: 나는이 상황에서 무엇을 의미하는지 길이를 알아 내려고 노력하고 있기 때문에이를 보았다는
(22)이 될 거라 생각 했어요. 내가 이해할 수없는 것은 길이가 [] []을 사용해야하는 이유입니다. 그것은 제가 일할 수있는 유일한 방법이었습니다. 나는 thePieces [0] [0] .length를 시도했지만 이해하지 못했다는 오류가 있습니까?
참조를 얻기 위해 [[] [] []를 써야하는 이유는 무엇입니까? 배열의 첫 번째 "레벨"이 myArray []. length 대신 myArray.length를 참조하는 온라인을 보았습니다. 그 다음 내가 말하는 것은 myArray [] []. 길이 (2, 3 레벨 인 것처럼 보이지만 내가 기대하는 것을 얻지 못한다)인가?
필자의 조각 코드를 실행하여 2를 얻었습니다. 왜 이것이 2인지 알 수 없습니다. 세 번째 단계에서 두 세트를 가지고 있기 때문입니까? 나는 4 세트의 점 때문에 4 점을 얻을 것으로 예상했다.
도움을 주셔서 감사합니다.
편집 : 왜 2인지 알아 냈습니다. 그것은 내면에서 두 점을주고 있습니다. 내가 4 개를 원한다면 thePieces [0] .length를 사용할 것입니다. 그러나 첫 번째 예는 무엇입니까? 오타입니까?
나는 오타라고 생각합니다. 고맙습니다. – johnny