-
Java | 다차원 배열_이차원 배열JAVA/JAVA 2020. 1. 29. 17:45
다차원 배열_이차원 배열
배열의 리스트가 배열로 이루어진 표(면)의 형태를 갖는 배열
배열의 첫 번째 리스트를 행이라고 하고,
각 행에 해당하는 배열을 열이라고 함
고정배열
행과 열의 개수가 정해져 있는 배열
자료형 [][] 배열명 = new 자료형[개수][개수]
가변배열
행의 개수는 정해져 있지만, 열의 개수는 정해져 있지 않은 배열
행의 개수가 정해져 있지 않은 배열은 생성할 수 없음
자료형 [][] 배열명 = new 자료형[개수][]
초기화
// 배열을 생성한 후 초기화 하는 경우, 불편하기 때문에 자주 사용되지 않음 자료형 [][] 배열명 = new 자료형[2][2] 배열명[0][0] = 값1, 배열명[0][1] = 값2, 배열명[1][0] = 값3, 배열명[1][1] = 값4 // 생성과 동시에 초기화, 동시에 초기화하는 경우 행/열 개수를 임의로 설정 가능 자료형 [][] 배열명 = {{값1, 값2, 값3},{값4, 값5}, {값7},,,}
사용례
package j200129; public class DoubleArray { public static void main(String[] args) { // int형 이차원 배열 array 생성 및 초기화 int[][] array = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; // array 배열의 행 값 출력 for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } // 행의 주소값이 출력됨 -> 열의 리스트가 저장되어 있는 주소를 알려줌 /* [I@15db9742 [I@6d06d69c [I@7852e922 */ // array 배열의 행에 저장된 각각의 열 값 출력 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.println("array2[" + i + "][" + j + "]: " + array[i][j]); } } /* array2[0][0]: 1 array2[0][1]: 2 array2[0][2]: 3 array2[1][0]: 4 array2[1][1]: 5 array2[1][2]: 6 array2[2][0]: 7 array2[2][1]: 8 array2[2][2]: 9 */ } }
확장 for문_이차원 배열
형식
for(1차원 배열 자료형 배열명[]:2차원 배열명){ for(1차원 배열 자료형 변수명: 1차원 배열명){ // Java Code; } }
사용례
package j200129; public class DoubleArray { public static void main(String[] args) { int[][] array = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; // 2차원 배열 내의 각각의 행을 임시로 1차원 배열 tmp[]에 할당 for (int tmp[] : array) { // 1차원 배열 tmp[]의 각각의 요소를 임시로 변수 val에 할당 for (int val : tmp) { System.out.print(val + "\t"); } System.out.println(); } /* 1 2 3 4 5 6 7 8 9 */ } }
배열의 리스트가 또 배열로 이루어져 있는 이차원 배열에 대해 살펴보았습니다.
이차원 배열의 경우 표를 연상하면 조금 더 이해하기가 수월할 것입니다.
다차원 배열에서 이차원 배열까지는 많이 사용된다고 하기 때문에
이차원 배열의 구조와 기본적인 사용법에 대해서는 알아두는 것이 좋겠습니다.
'JAVA > JAVA' 카테고리의 다른 글
Java | Inheritance 상속 & Overriding & Class 관계 (0) 2020.01.29 Java | Array of Objects 객체 배열 (0) 2020.01.29 Java | Ellipsis 가변인수 (0) 2020.01.29 Java | String Method & API 문서 참조 방법 (0) 2020.01.29 Java | Scanner (0) 2020.01.28