티스토리 뷰

ocajp에는 2차월 배열 문제가 많이 나온다. 그래서 자바 2차원 배열에 관해 정확히 이해하고 가는게 좋다.

 

2차원 배열에 대해 알려드릴게요.

바로 이전 포스팅에서 보셨던 배열이

1차원 배열이에요.

2차원 배열은 값을 더 많이

효과적으로 담을 수 있어요.

이런 2차원 이상의 배열을 다차원 배열이라고 하는데

실질적으로 2차원 배열 이상으로는 잘 사용되지 않아요.

1차원과 2차원이 무엇이냐면

1차원 배열에서는 값을 1번만 담아요.

그런데 2차원 배열은 1차원 배열에

값을 더 담을 수 있어요.

예를 들어볼게요.

int[][] arr = new int[3][4];

 

 

3개의 배열 안에 각각 4개씩 더 담을 수 있는 거죠.

이것을 보기 쉽게 변경한다면

 

이런 형태가 돼요.

따라서 int[3][4]이면

3은 세로 길이, 4는 가로 길이 의미하는 거죠.

1차원 배열과 마찬가지로 선언 시 []의 위치

변수의 앞과 뒤에 자유롭게 올 수 있어요.

int[][] arr = new int[3][4];

int arr[][] = new int[3][4];

int []arr[] = new int[3][4];

위의 형태로 선언 가능하다는 것만 알아두세요 ^^

실제 사용은 첫 번째를 사용하시는 게 좋답니다~

2차원 배열의 초기화는 {}를 한번 더 묶어주시면 돼요.

int[][] arr = {

{1, 2, 3, 4},

{5, 6, 7, 8},

{9, 10, 11, 12}

};

위의 초기화를 보시면

세로3, 가로 4줄로 이루어진 배열이라는 것도 알 수 있으실 거예요.

2차원 배열을 출력하고 싶을 때는

반복문을 두 번 쓸 수 있어요.

for(int i=0; i<arr.length; i++){ 

for(int j=0; j<arr[i].length; j++) 

System.out.print(arr[i][j]+" "); 

System.out.println(""); 

}

arr.length 첫 번째 배열인 int[3]의 길이를 재고

arr[i].length는 각각의

arr[0], arr[1], arr[2]의 길이를 나타내요.

arr[0] 번째 줄의 길이는 4

arr[1] 번째 줄의 길이도 4

arr[2] 번째 줄의 길이도 4

또한 가로 길이가 일정하지 않게 할 수도 있어요.

일정하지 않은 배열을 'Ragged Array'이라고 하는데

어떻게 쓰이냐면

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

arr[0] = new int[2];

arr[1] = new int[3];

arr[2] = new int[4];

이렇게 가로 길이를 정하지 않고

아래에서 선언을 하기도 하고

선언과 동시에 초기화하기도 해요.

int[][] arr = {

{1, 2],

{3, 4, 5},

{6, 7, 8, 9}

};

 

이렇게 쓰여요.

이것은 필요하지 않은 메모리를 줄여서

효과적이지만

프로그래머의 세심한 주의가 필요해요.

 

출처:

https://m.blog.naver.com/PostView.nhn?blogId=reeeh&logNo=220349745336&proxyReferer=https%3A%2F%2Fwww.google.com%2F

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함