입체적으로 배열을 만들 수 있다. 배열안에 배열이 있다고 생각하면 쉽다.
{{ }} 이렇게 말이다.
기본적으로 2차원 배열은 array[ ][ ] 이렇게 생겼는데,
앞의 칸에는 행(가로), 뒤의 칸에는 열(세로)의 길이를 넣어주면 된다.
만약 [5][2] 이라면,
@@@@@
@@@@@
이런식이다.
//선언
int[][] numbers;
//선언과 초기화
int[][] numbers = new int[2][3];
//초기화
int[][] numbers = new int[][];
//초기화 방식2
int[][] numbers = {{1,2,3},{4,5,6}};
기본 배열과 마찬가지로 원하는 위치에 값을 넣을 수도 있다.
numbers[0][0] = 3;
//같은 자리에 기존 값이 있어도 3으로 바뀜.
이중배열의 출력
//출력 -> numbers의 첫 행의 인덱스 1자리를 출력.->2
System.out.println(numbers[0][1]);
이중배열의 길이 확인하기
//행(가로) 확인하기
System.out.println(numbers.length);
//열(세로) 확인하기
System.out.println(numbers[].length);
행은 가로를 뜻하고 열은 세로를 뜻하는데 , 여기서 length를 행과 열의 길이라고 보기보단, 행과 열의 갯수라고 보는게 나는 더 이해하기 쉬운 거 같다.
쉽게 말해,
행(가로)는 배열의 갯수라고 생각하면 되고,
열(세로)는 각 배열의 길이length라고 생각하면 된다.
즉, numbers.length => 배열이 몇개나 들어있는지 확인 할 수 있고,
numbers[].length => 알고 싶은 배열의 번호를 넣어서 해당 배열의 길이가 몇인지 확인 할 수 있다.
정리
int[][] numbers = {{1,2,3},{4,5,6,7,8}};
// 이 경우,
System.out.println(numbers.length);
//이렇게 출력하면 -> 2 가 나온다.
//배열이 몇개인지 보여줌.
System.out.println(numbers[0].length);
//이렇게 출력하면 -> 3이 나온다.
//numbers의 0번째 배열의 길이는 몇인지 보여주는 것.
System.out.println(numbers[1].length);
//5가 출력됨.
System.out.println(numbers[0][1]);
// 0번째 배열의 인덱스 1번이 뭔지 알려줌. -> 2가 출력됨.
System.out.println(numbers[1][3]);
//1번째 배열의 인덱스 3번이 뭔지 알려줌. -> 7이 출력됨.
nunmbers[1][3] = 9;
System.out.println(numbers[1][3]);
//7이 아닌 9가 출력된다.