다차원배열
배열의 논리적 메모리 구조가 2차원 이상의 형태를 보이는 배열을 가리켜 '다차원 배열' 이라고한다.
즉 2차원배욜도 다차원 배열이고, 3차원 배열도 다차원 배열이다.
그러나 일반적인 프로그램에서는 2차원을 초과하는 구조의 배열을 잘 이용하지 않는다.
따라서 설명의 초점을 2차원 배열에 두고자 한다.
2차원 배열
1차원 배열은 그 이름이 의미하듯이 둘 이상의 변수가 '선의 형태' 로 존재하는 배열이다
반면 2차원 배열은 다수의 변수가 '면의 형태'로 존재하는 배열이다.
2차원 배열의 생성 방법
int[][] array4 = new int[3][4];
- int[][]은 int형 2차원 배열의 참조형 변수를 의미하고
- new int[3][4]에서 3은 배열의 세로 길이를, 4는 가로길이를 의미한다.
2차원 배열에 값을 저장하는 방법
array4[0][0] = 10;
- 만약 array4[1] =10; 이렇게 사용하면 오류!
- array4[1] 은 또 다른 1차원 배열을 가리 킬 수 있는 참조형 변수이기때문에 값을 담을수는 없다.
가변크기의 2차원 배열을 생성하는 방법
int[][] array5 = new int[3][];
//위와 같이 선언하면 array5는 3개짜리 배열을 참조한다. 3개짜리 배열은 아직 참조하는 배열이 없다는 것을 의미.
array5[0] = new int[1]; //정수를 하나 담을 수 있는 배열을 생성해서 array5 의 0 번째 인덱스가 참조한다.
array5[1] = new int[2]; //정수를 두개 담을 수 있는 배열을 생성해서 array5 의 1 번째 인덱스가 참조한다.
array5[2] = new int[3]; //정수를 세개 담을 수 있는 배열을 생성해서 array5 의 2 번째 인덱스가 참조한다.
선언과 동시에 초기화 하는 방법
int[][] array6 = {{1}, {2,3}, {4,5,6}};
//위와 같이 선언할 경우 array6[0][0] 는 1이다. array6[1][0]은 2이다.
2차원 배열의 예시(구구단)
public class FinalTest3 {
public static void main(String[] args) {
int[][] gugudan = new int[10][16];
for (int i = 5; i <=7; i++) {
System.out.println(i + "단");
for (int j = 1; j < gugudan[i].length; j++) {
gugudan[i][j] = i * j;
System.out.print(i + "x" + j + "=" + gugudan[i][j] + "|");
// 배열 출력
if (j == 15 ) {
System.out.println(""); // i x j(9)가 되면 줄 건너뛰기
}
}
}
}
}
- 위 코드는 5 * 1 부터 7 * 15까지의 곱을 나타내는 식이다.
- new int[10] 부분이 단수, new int[16]이 곱해지는 수의 배열이다. (위 상황에선 15까지의 곱을 나타내야 하므로 배열이 16이 된다.)

'Programming > Java' 카테고리의 다른 글
[JAVA] API Documentation 확인하기 (0) | 2022.06.10 |
---|
다차원배열
배열의 논리적 메모리 구조가 2차원 이상의 형태를 보이는 배열을 가리켜 '다차원 배열' 이라고한다.
즉 2차원배욜도 다차원 배열이고, 3차원 배열도 다차원 배열이다.
그러나 일반적인 프로그램에서는 2차원을 초과하는 구조의 배열을 잘 이용하지 않는다.
따라서 설명의 초점을 2차원 배열에 두고자 한다.
2차원 배열
1차원 배열은 그 이름이 의미하듯이 둘 이상의 변수가 '선의 형태' 로 존재하는 배열이다
반면 2차원 배열은 다수의 변수가 '면의 형태'로 존재하는 배열이다.
2차원 배열의 생성 방법
int[][] array4 = new int[3][4];
- int[][]은 int형 2차원 배열의 참조형 변수를 의미하고
- new int[3][4]에서 3은 배열의 세로 길이를, 4는 가로길이를 의미한다.
2차원 배열에 값을 저장하는 방법
array4[0][0] = 10;
- 만약 array4[1] =10; 이렇게 사용하면 오류!
- array4[1] 은 또 다른 1차원 배열을 가리 킬 수 있는 참조형 변수이기때문에 값을 담을수는 없다.
가변크기의 2차원 배열을 생성하는 방법
int[][] array5 = new int[3][];
//위와 같이 선언하면 array5는 3개짜리 배열을 참조한다. 3개짜리 배열은 아직 참조하는 배열이 없다는 것을 의미.
array5[0] = new int[1]; //정수를 하나 담을 수 있는 배열을 생성해서 array5 의 0 번째 인덱스가 참조한다.
array5[1] = new int[2]; //정수를 두개 담을 수 있는 배열을 생성해서 array5 의 1 번째 인덱스가 참조한다.
array5[2] = new int[3]; //정수를 세개 담을 수 있는 배열을 생성해서 array5 의 2 번째 인덱스가 참조한다.
선언과 동시에 초기화 하는 방법
int[][] array6 = {{1}, {2,3}, {4,5,6}};
//위와 같이 선언할 경우 array6[0][0] 는 1이다. array6[1][0]은 2이다.
2차원 배열의 예시(구구단)
public class FinalTest3 {
public static void main(String[] args) {
int[][] gugudan = new int[10][16];
for (int i = 5; i <=7; i++) {
System.out.println(i + "단");
for (int j = 1; j < gugudan[i].length; j++) {
gugudan[i][j] = i * j;
System.out.print(i + "x" + j + "=" + gugudan[i][j] + "|");
// 배열 출력
if (j == 15 ) {
System.out.println(""); // i x j(9)가 되면 줄 건너뛰기
}
}
}
}
}
- 위 코드는 5 * 1 부터 7 * 15까지의 곱을 나타내는 식이다.
- new int[10] 부분이 단수, new int[16]이 곱해지는 수의 배열이다. (위 상황에선 15까지의 곱을 나타내야 하므로 배열이 16이 된다.)

'Programming > Java' 카테고리의 다른 글
[JAVA] API Documentation 확인하기 (0) | 2022.06.10 |
---|