본문 바로가기
Back/JAVA

다차원 배열과 가변 배열

by 시월해 2021. 3. 4.

* 다차원 배열
- 1차원 배열이 여러 개 묶여 있는 형태의 배열을 말함.
- 행과 열의 개념이 적용이 됨.

 


* 다차원 배열의 가변배열
- java의 다차원 배열은 행마다 서로 다른 열을 가질 수 있다.
- 행의 크기를 먼저 결정을 하고, 열의 크기는 가변적으로 할당하는 배열.
- 가변배열 사용 이유 : 메모리 손실을 최소화 시켜 주기 위함.

 


기본예제1) 가변배열

	public static void main(String[] args) {
		
		// 1. 다차원 배열 선언 및 메모리 생성.
		int[][] arr = new int[3][4];   // 3행4열 2차원 배열
		
		// 2. 배열의 초기화 작업.
		int count = 10;
		
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				arr[i][j] = count;
				System.out.println("arr["+i+"]["+j+"] >>> "+arr[i][j]);
				count = count + 10;
			}
		}

	}

결과

 


기본예제2) 다차원 가변배열

	public static void main(String[] args) {
		
		// 1. 다차원 배열의 가변 배열 선언 및 메모리 생성.
		int[][] arr = new int[4][];  // 행 : 4행, 열 : 미지정
		
		// 2. 가변 배열의 열 메모리 생성.
		arr[0] = new int[3];    // 1행 3열
	    arr[1] = new int[2];    // 2행 2열
	    arr[2] = new int[1];    // 3행 1열
        arr[3] = new int[4];    // 4행 4열
        
        // 3. 가변 배열에 초기값 할당.
        int count = 10;
        for(int i=0; i<arr.length; i++) {
        	for(int j=0; j<arr[i].length; j++) {
        		arr[i][j] = count;
        		System.out.print(arr[i][j] + "\t");
        		count += 10;   // count = count + 10;
        	}
        	System.out.println();
        }
	}

결과

 


예제1) 다차원 배열을 사용하여 아래와 같이 출력하시오.

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

 

	public static void main(String[] args) {
		
		// 1. 2차원 배열 선언 및 메모리 할당
		int[][] arr = new int[5][5];
		int count = 1;
		
		// 2. 5행 5열 다차원 배열에 데이터를 저장 하자.
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				arr[i][j] = count++;
			}
		}
		
		// 3. 다차원 배열을 화면에 출력해 보자.
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				System.out.printf("%2d\t", arr[i][j]);
			}
			System.out.println();
		}

	}

결과


예제2) 다차원 배열을 사용하여 아래와 같이 출력하시오.

1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24

5 10 15 20 25

 

	public static void main(String[] args) {
		// 1. 2차원 배열 선언 및 메모리 할당
		int[][] arr = new int[5][5];
		int count = 1;
		
		// 2. 5행 5열 다차원 배열에 데이터를 저장 하자.
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				arr[j][i] = count++;
			}
		}
		
		// 3. 다차원 배열을 화면에 출력해 보자.
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				System.out.printf("%2d\t", arr[i][j]);
			}
			System.out.println();
		}

	}

결과


예제3) 다차원 가변 배열을 사용하여 아래와 같이 출력하시오.

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

	public static void main(String[] args) {
		
		int[][] arr = new int[5][];
		int count = 1;
		
		// 1. 가변 배열의 크기를 지정해주자.
		for(int i=0; i<arr.length; i++) {
			 arr[i] = new int[i+1];
		}
		
		// 2. 가변 배열에 데이터를 저장해 주자.
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				arr[i][j] = count++;
			}
		}
		
		// 3. 가변 배열을 화면에 출력해 보자.
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[i].length; j++) {
				System.out.printf("%2d\t", arr[i][j]);
			}
			System.out.println();
		}
}

결과