Java 입문 | 자바 기본 구조 | 배열(Array)

자바에서는 같은 종류의 데이터르 저장하기 위한 자교 구조로 배열이 가지고 있다. 즉, 배열은 같은 자료형의 데이터들을 저장하는 하나의 기억 공간이다.

1차원 배열

배열을 선언하기 위해 우선 배열에 저장할 데이터 자료형을 선언하고 배열명과 공간의 크기를 선언해야 한다.

data-type var-name[];
data-type[] var-name;

배열의 선언시 배열의 공간 크기는 지정하지 않아도 된다. 배열을 선언한다고 해서 바로 메모리에 생성되지 않는다. 선언만 하고 배열을 사용을 하게 되면 널 참조 에러가 발생한다. 배열 객체를 생성하기 위해서는 반듯이 new 문장을 이용해서 배열을 생성해야 한다. (new에 대해서는 클래스 객체에 관련된 장에서 자세히 알아보도록 한다.)

var-name = new data-type[size];

앞에 두문장을 하나의 문장으로 사용 할수 있다.

data-type[] var-name = new data-type[size];
data-type var-name[] = new data-tapa[size];

즉, 아래와 같이 하나의 문장으로 선언과 생성을 동시에 수행할 수 있다.

int[] a = new int[10];

아래 예제는 3개의 배열을 초기화하고, 값을 대입하고 출력하는 예제이다.

package com.devkuma.tutorial.arry;

public class Array1 {

    public static void main(String[] args) {
        int[] a = new int[3];
        a[0] = 1;
        a[1] = 2;
        a[2] = 3;

        System.out.println("a[0] : " + a[0]);
        System.out.println("a[1] : " + a[1]);
        System.out.println("a[2] : " + a[2]);
    }
}

아래 예제는 3개의 배열을 초기화와 값을 한번에 대입해서 출력하는 예제이다.

package com.devkuma.tutorial.arry;

public class Array2 {

    public static void main(String[] args) {
        int[] a = {1, 2, 3};

        System.out.println("a[0] : " + a[0]);
        System.out.println("a[1] : " + a[1]);
        System.out.println("a[2] : " + a[2]);
    }
}

아래 예제는 3개의 배열을 초기화와 값을 한번에 대입하고, 반복문을 사용하여 출력하는 예제이다.

package com.devkuma.tutorial.arry;

public class Array3 {

    public static void main(String[] args) {
        int[] a = { 1, 2, 3 };

        for (int i = 0; i < a.length; i++) {
            System.out.println("a[" + i + "] : " + a[i]);
        }
    }
}

배열의 길이는 위에 예제처럼 length로 구할 수 있다.

다차원 배열

다차원 배열을 1차원 배열을 여러개 사용하여 구현한다. 즉, 1차원 배열은 선언한 후에 각각의 인덱스 안에 새로운 배영을 할당하는 방식이다. 다차원 배열의 선언은 1차원 배열

data-type var-name[][] = new data-type[size][size];
data-type[][] var-name = new data-type[size][size];
data-type[] var-name[] = new data-type[size][size];
int a[][] = new int[4][5];
int[][] a = new int[4][5];
int[] a[] = new int[4][5];

행열을 가진 배열에서의 인덱스 값

[0][0] [0][1] [0][2] [0][3] [0][4]
[1][0] [1][1] [1][2] [1][3] [1][4]
[2][0] [2][1] [2][2] [2][3] [2][4]
[3][0] [3][1] [3][2] [3][3] [3][4]

오른쪽 지수는 열을 결정하고 왼쪽 지수는 행을 결정한다.