티스토리 뷰

같은 타입의 변수를 여러개를 묶어서 사용하기 위해 배열을 사용한다. 배열 또한 여러개 묶어서 배열로 사용할 수 있다. 이것이 바로 2차원 배열이다. 2차원 배열은 배열들을 배열형태로 가지고 있는 것을 말한다.


스택에있는 배열 변수는 힙영역의 배열의 첫번째 인덱스의 주소값을 가지고 있고 힙영역에있는 배열의 인덱스들은 다시한번 각각의 인덱스별 배열에대한 주소를 가지고 있다. 


2차원 배열의 생성과 사용

타입[ ]는 배열을 의미하지만 배열안에 배열이기때문에 타입[ ][ ]으로 사용한다.

 int[][] Array = new int[3][2]; // 2차원 배열의 선언
    Array[0] = 3;               // 오류!!
    Array[0][2] = 3;

Array[ ]에는 int형 자료가 들어있는것이 아니라 int형 배열이 들어있기때문에 Array[ ]에 다시한번[ ]를 사용하여 인덱스에 접근해야한다.



2차원 배열 동적할당


2개의 값을 가진 3개의 배열을 사용할 것이라면 괜찮지만, 3개의 값, 2개의값, 4개의값을 가진배열처럼 각 배열의 인덱스에 들어있는 배열의 크기가 달라야 하는 상황에서는 다음과 같이 2가지의 동적할당 방법을 사용할 수 있다.

 int[][] Array1 = {		 // { }를 사용하여 각가의 값을 넣어주는 방식
		    {3, 7, 4,},
		    {9, 5},
		    {2, 8, 3, 6}
		  };
		
int[][] Array2 = new int[3][];	 //총 배열의 개수만 정해주고 각 인덱스별로 배열크기 지정하는 방법
    Array2[0] = new int[3];
    Array2[1] = new int[2];
    Array2[2] = new int[4]; 


2차원 배열에 들어갈 값이 정해져있다면 첫번째와 같은 방법으로 사용하거나 배열 선언후 2중 for문으로 값을 넣어 사용하면 된다.

하지만 몇개의 배열이 필요하지는 알지만 각각의 배열의 크기를 아직모르는 상황이라면 2번째 방법을 사용하는 것이 좋다!

'Study ! > JAVA' 카테고리의 다른 글

JAVA 정리 4-1. 상속과 Override  (0) 2018.09.13
JAVA 정리 3. 접근 제한자 (public, protected, private)  (0) 2018.09.09
JAVA 정리 2. 클래스  (0) 2018.09.09
JAVA정리 1-1. 배열  (0) 2018.09.07
JAVA정리 1. 참조변수  (0) 2018.09.07
댓글