본문 바로가기

develop/Java

배열(Array) - 2차원 배열

2차원 배열

 

앞에서 배열은 같은 종류의 데이터를 하나로 묶은 것이라고 배웠다. 2차원 배열은 그런 1차원 배열들을 여러개로 묶어 관리하는 것을 말한다.

특이점은 여러개를 묶어 관리하다보니 행과 열로 이뤄진 테이블 구조로 관리된다.

1차원에서는 [0],[1],...[n]번으로 인덱스를 관리했다면 2차원 배열에서는 [행,열]로 인덱스를 표시한다.

 

 

2차원 배열 선언하는 방법

 

데이터타입[][] 변수명;

int[][] arr;

 

2차원 배열 생성 문법

 

변수명 = new 데이터타입[행크기][열크기];

arr = new int[3][4];

 

2차원 배열 선언과 생성을 결합

 

데이터타입[][] 변수명 = new 데이터타입[행크기][열크기];

 

int[][] arr = new int[][];

 

2차원 배열 선언, 생성, 초기화를 동시에

 

데이터타입[][] 변수명 = {

  {값1, 값2,...값m} 

  {값1, 값2,...값m} 

   ...생략...

  {값1, 값2,...값m} 

};

int[][] arr = {
	{1,2}
    {3,4}
    {5,6}

};

 

2차원 배열 접근

 

변수명[행인덱스][열인덱스]

 

배열크기 알아내기

 

1. 1차원 배열 = 배열명.length

2. 2차원 배열 = 

   1) 행크기 = 배열명.length

   2) 열크기 = 배열명[행번호].length

 

<중첩 for문과 length 속성 사용하여 2차원 배열의 모든 요소에 접근 공식>

 

for(int i = 0;i< 배열명.length;i++){

 for (int j = 0; 배열명[i].length;j++){
   }

}

 

 

 

크기가 균등하지 않은 2차원 배열

 

1. 데이터가 미리 준비되지 않은 경우 

 - 2차원 배열에서의 "행"을 먼저 지정하여 생성하고, 차후 각 행에서 열에 해당하는 1차원 배열을 각각 생성

- 우선, 2차원 배열 생성 문법에서 행크기에 해당하는 값만 입력하여 반드시 2차원 배열의 행에 해당하는 1차원 배열만 먼저 생성

=> 즉, 2차원 배열에서 행은 열에 해당하는 1차원 배열을 저장하는 공간

//1.2차원 배열에서 행에 해당하는 1차원 배열만 먼저 생성 

int[][] arr3 = new int[3][];

//2.2차원 배열의 각 행에서 배열의 열에 해당하는 차원 배열을 각각 따로 생성
arr[0] = new int[2]; 00
arr[1] = new int[3]; 000
arr[2] = new int[1]; 0

 

그리고 한번에 간단하게 수행하는 방법도 있다.

 

int[][] arr = {
{1,2},
{3,4,5},
{6},

};

 

'develop > Java' 카테고리의 다른 글

메소드 method - (2)  (0) 2021.02.04
메소드 method -(1)  (0) 2021.02.03
무한 루프, do-while, 배열(Array)  (0) 2021.01.27
반복문 제어 break, continue  (0) 2021.01.27
for 문과 while문 - 중첩 (2)  (0) 2021.01.25