시작하며
여러분 안녕하세요!
DreamHanks의254cm입니다.
이번 시간에는 다차원 배열에 대해서 알아보도록 하겠습니다.
Java의 전체 기사는 여기를 클릭해 주세요.
이전 기사는 [자바 개발] 제8회 배열에 대해서 배워봤습니다.
다차원 배열
지금까지의 배열은 한 줄로 값을 저장하는「일차원 배열」이었습니다.
다차원 배열은 2차원 배열 이상으로 실장한 것입니다.
int형의 일차원 배열은 몇개의 int형의 변수가 저장되어 있는 것이며,
int[ ] 형의 이차원 배열은 몇 개의 int[ ] 형의 일차원 배열이 저장되어 있는 것입니다.
즉, N차원 배열은 N-1차원 배열이 저장되어 있는 배열입니다.
선언
2차원의 경우
1 |
데이터형[][] 배열변수명 = new 데이터형[요소수][요소수]; |
3차원의 경우
1 |
데이터형[][][] 배열변수명 = new 데이터형[요소수][요소수][요소수]; |
초기화
2차원의 경우
1 |
데이터형[][] 배열 변수명={요소, 요소, 요소, 요소}, {요소, 요소, 요소, 요소, 요소}}; |
3차원의 경우
1 |
데이터형[][][] 배열변수명 = {{요소, 요소, 요소}, {요소, 요소, 요소}}, {{요소, 요소, 요소}, {{요소, 요소, 요소}}, {{요소, 요소, 요소}}}; |
위와 같이 차원이 늘어나도 쓰기 규칙은 같습니다.
이차원 배열을 한 줄마다 초기화하면.
1 |
변수명 [인덱스] = new int[] {요소,요소,요소,요소}; |
샘플
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public class ArraySample { public static void main(String[] args) { int [][] arr1 = new int[2][3]; arr1[0] = new int[] {1,2,3}; arr1[1] = new int[] {4,5,6}; int [][] arr2 = {{1,2,3} , {4,5,6}}; int[][][] arr3 = new int [2][2][2]; arr3[0] = new int [][] {{1,2} ,{3,4}}; arr3[1] = new int [][] {{5,6} ,{7,8}}; int[][][] arr4 = {{{1,2} ,{3,4}},{{5,6} ,{7,8}}}; int[][] arr5 = new int [5][5]; for(int i = 0; i < arr5.length; i++) { for(int j = 0; j < arr5[i].length; j++) { arr5[i][j] = i+j; } } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public class ArraySample { public static void main(String[] args) { int[][] arr = new int[5][5]; int i = 0; int j = 0; for(int[] array : arr) { for(int value : array) { arr[i][j] = 1; j++; } i++; } for(int[] array : arr) { for(int value : array) { System.out.print(value); } System.out.println(); } } } |
int형의 일차원 배열은 몇 개의 int변수를 낼 수 있습니다.
마찬가지로 이차원 배열은 몇 개의 일차원 배열을 낼 수 있습니다.
1차원 배열에서 한 요소는 변수이지만, 2차원 배열에서 한 요소는 1차원 배열입니다.
즉, 이차원 배열에서 한 변수를 내고 싶은 경우에는 이차원 배열 요소의 요소를 내야 합니다.
위와 같이 arr[0] 배열의 인덱스 0번째 요소를 내기 위해 arr[0][0]을 적었습니다.
샘플
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public class ArraySample { public static void main (String[] args) { int a[][] = new int [5][5]; for (int i=0; i<a.length; i++ ) { for(int j=0;j<a[i].length;j++) { if (i%2==0&&j%2==0) { a[i][j]= 1; } } } for(int [] arr : a) { for(int value : arr) { System.out.print(value +" "); } System.out.println(); } } } |
끝으로
이번 기사는 이상입니다.
다음 시간에는 자바의ArrayList를 배워보겠습니다.
방문해 주셔서 감사합니다.
コメント