JAVA Basic) 다차원 배열
Programming/Java 기초

JAVA Basic) 다차원 배열

728x90

 

목차


     

    <다차원 배열>

    수학에서 평면을 나타내기 위해 x, y좌표를 쓰는 것 처럼 프로그램에서도 평면을 구현하기 위해 행, 열을 이용한 이차원 배열을 사용할 수 있다.
    바둑, 체스 네비게이션 지도 등을 구현할 때 이차원 배열을 활용.
    공간을 나타내는 프로그램을 구현할 때는 삼차원 배열을 활용.
    이렇게 이차원 이상으로 구현한 배열을 '다차원 배열'이라고 한다. 

    <이차원 배열>

    2행 3열의 이차원 배열 선언 코드.

    	int [][] arr = new int [2] [3];
    // 자료형   배열명        행 / 열 개수

    배열의 모든 요소를 참조하기 위해 각 행을 기준으로 열 값을 순회한다.
    이 배열을 초기화 하려면 행과 열 개수에 맞추어 중괄호 {}안에 콤마(,)로 구분해 값을 적으면 된다.
    다음 코드처럼 괄호 안에 적은 6개 값이 순서대로 arr배열의 각 요소에 저장된다.

    int[][] arr = {{1,2,3},{4,5,6}};
    //이차원 배열 arr을 선언과 동시에 초기화

    int[][] arr = {{1,2,3},{4,5,6}}; 의 메모리 구조


    이차원 배열 초기화 하기

    public class TwoDimension {
    
    	public static void main(String[] args) {
    		int[][] arr = {{1,2,3},{4,5,6}};
    		//이차원 배열 선언과 동시에 초기화
    		
    		for(int i = 0; i < arr.length; i++) {
    			for(int j = 0; j < arr[i].length; j++) {
    				System.out.println(arr[i][j]);
    			}
    			System.out.println();//0행 출력 후 줄 띄우기
    		}
    	}
    }

    run:

    중첩 for문은 배열 인덱스용으로 i, j 두 변수를 사용했다.
    i는 행, j는 열을 가리킨다.
    전체 배열 길이 arr.length는 행의 개수,
    각 행의 길이 arr[i].length는 열의 개수 를 나타낸다.

     

    이차원 배열의 길이 출력

    	public static void main(String[] args) {
    		int[][] arr = new int[2][3];
    		// 2행 3열(초기화 X)
    		
    		for(int i = 0; i < arr.length; i++) {
    			for(int j = 0; j < arr[i].length; j++) {
    				System.out.println(arr[i][j]);
    			}
    			System.out.println();
    		}
    		System.out.println(arr.length);
    		// 행 개수
    		System.out.println(arr[0].length);
    		// 열 개수
    	}
    }

    run:

    위 코드를 보면 이차원 배열을 선언만 하고 초기화를 따로 하지 않아서 모두 0으로 자동 초기화 된 것을 확인할 수 있다.

     

     

     


    <이차원 배열 연습하기>

    알파벳 소문자를 2글자씩 13줄(13행 2열)로 출력하는 프로그램을 이차원 배열로 구현해보자.

    	public static void main(String[] args) {
    		char[][] alphabet = new char[13][2];
    		char ch = 'a'; //ch에 아스키값 a 저장
    		
    		for(int i = 0; i < alphabet.length; i++) {
    			for(int j = 0; j < alphabet[i].length; j++, ch++) {
    				alphabet[i][j] = ch;
    				// 배열 값에 아스키 값으로 저장 후 ch++ 하게 되는 구조.
    				System.out.print(alphabet[i][j]);
    			}	// 
    			System.out.print(" ");
    		}
    	}
    }

    run:

    너무 위아래로 길어져서 각 행을 띄어쓰기로 대체함

     

     


    [Do it! 자바 프로그래밍 입문] 도서로 공부하며 정리한 글입니다.

    300x250