min's devlog
다차원 배열 본문
다차원 배열
- 배열의 논리적 메모리 구조가 2차원 이상의 형태를 보이는 배열
- 일차원 배열만으로는 표현할 수 있는 것의 한계가 생긴다.
private static void m1() {
//1차원 배열
int[] nums1 = new int[3];
//2차원 배열(테이블)
int[][] nums2 = new int[2][3]; //2(행), 3(열)
//3차원 배열
int[][][] nums3 = new int[2][2][3]; //2(면), 2(행), 3(열)
//배열 요소 접근(방번호 매기기)
//1차원 배열
nums1[0] = 100;
nums1[1] = 200;
nums1[2] = 300;
//2차원 배열 > 차원 2개 > 첨자 2개
nums2[0][0] = 100;
nums2[0][1] = 200;
nums2[0][2] = 300;
nums2[1][0] = 400;
nums2[1][1] = 500;
nums2[1][2] = 600;
//3차원 배열 > 차원 3개 > 첨자 3개
nums3[0][0][0] = 100;
nums3[0][0][1] = 200;
nums3[0][0][2] = 300;
nums3[0][1][0] = 400;
nums3[0][1][1] = 500;
nums3[0][1][2] = 600;
nums3[1][0][0] = 700;
nums3[1][0][1] = 800;
nums3[1][0][2] = 900;
nums3[1][1][0] = 1000;
nums3[1][1][1] = 1100;
nums3[1][1][2] = 1200;
//배열 탐색(+조작)
//- 1차원 배열 > 단일 for문
//- 2차원 배열 > 2중 for문
//- 3차원 배열 > 3중 for문
//1차원 배열
for (int i=0; i<nums1.length; i++) {
System.out.printf("nums1[%d] = %d\n", i, nums1[i]);
}
System.out.println();
for (int i=0; i<nums1.length; i++) {
System.out.printf("%5d", nums1[i]);
}
System.out.println();
System.out.println();
//2차원 배열
for (int i=0; i<2; i++) {
for (int j=0; j<3; j++) {
System.out.printf("nums2[%d][%d] = %d\n", i, j, nums2[i][j]);
}
}
System.out.println();
for (int i=0; i<nums2.length; i++) {
for (int j=0; j<nums2[0].length; j++) {
System.out.printf("%5d", nums2[i][j]);
}
System.out.println();
}
System.out.println();
System.out.println();
//3차원 배열
for (int i=0; i<2; i++) {
for (int j=0; j<2; j++) {
for (int k=0; k<3; k++) {
System.out.printf("nums3[%d][%d][%d] = %d\n", i, j, k, nums3[i][j][k]);
}
}
}
System.out.println();
for (int i=0; i<nums3.length; i++) {
for (int j=0; j<nums3[0].length; j++) {
for (int k=0; k<nums3[0][0].length; k++) {
System.out.printf("%5d", nums3[i][j][k]);
}
System.out.println(); //행
}
System.out.println();//면
}
System.out.println();
//다차원 배열의 길이(= 방 개수)
//1차원 배열
//= new int[3];
System.out.println(nums1.length);
System.out.println();
//2차원 배열
//= new int[2][3]
System.out.println(nums2.length); //행의 개수
System.out.println(nums2[0].length); //열의 개수
System.out.println();
//3차원 배열
//= new int[2][2][3]
System.out.println(nums3.length); //면의 개수
System.out.println(nums3[0].length); //행의 개수
System.out.println(nums3[0][0].length); //열의 개수
System.out.println();
}
}
다차원 배열의 초기화
private static void m2() {
//다차원 배열의 초기화 리스트
int[] nums1 = { 10, 20, 30 };
//2차원 배열
//= new int[2][3]
int[][] nums2 = {{ 10, 20, 30 }, { 40, 50, 60 }};
//3차원 배열
//= new int[2][2][3];
int[][][] nums3 = {{{ 10, 20, 30 }, { 40, 50, 60 }}, {{ 10, 20, 30 }, { 40, 50, 60 }}};
int[][][] nums4 =
{
{
{ 10, 20, 30 },
{ 40, 50, 60 }
},
{
{ 10, 20, 30 },
{ 40, 50, 60 }
}
};
}
'til > Java' 카테고리의 다른 글
Java 컴파일 과정 (0) | 2022.07.28 |
---|---|
제네릭(generic) (0) | 2022.04.27 |
인터페이스(interface) (0) | 2022.04.26 |
추상 클래스(abstract class) (0) | 2022.04.24 |
메소드 오버라이딩(method overriding) (0) | 2022.04.23 |
Comments