Last Modified : 2011.01.02

배열

배열은 동일한 자료형의 데이터을 담는 그릇이다.
배열요소에 접근하기 위해서는 인덱스를 사용한다.
주의할 점은 자바에선 배열도 객체라는 사실이다. 따라서 new 란 키워드로 배열 객체를 생성해야 배열을 사용할 수 있게 된다.

1차원 기본 자료형 배열

예제는 1차원 int형 배열을 사용하는 방법이다.

int[] arr;

arr = new int[5];

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;

아래처럼 사용하기도 한다.

int[] arr = {1, 2, 3, 4, 5};
1차원 참조 자료형 배열

예제는 1차원 String 형 배열을 사용하는 방법이다.

String[] arr;

arr = new String[4];

arr[0] = "자바";
arr[1] = "스쿨";
arr[2] = "java";
arr[3] = new String("school");

아래처럼 사용하기도 한다.

String[] arr = {"자바", "스쿨", "java", "school"};
2차원 기본 자료형 배열

예제는 2차원 int형 배열을 사용하는 방법이다.

int[][] arr;

arr = new int[4][];

arr[0] = new int[3];
arr[1] = new int[3];
arr[2] = new int[3];
arr[3] = new int[3];

arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;

arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;

arr[2][0] = 7;
arr[2][1] = 8;
arr[2][2] = 9;

arr[3][0] = 10;
arr[3][1] = 11;
arr[3][2] = 12;

자바에서 배열의 단점은 객체 생성할 때 정해준 크기를 나중에 필요에 따라 늘릴 방법이 없다는 것이다.
배열 객체는 인스턴스 필드로 length를 가진다. length는 배열 객체가 생성될 때 정해지고 변하지 않는다.
주의 할 점은 length는 배열 객체가 생성할 때 결정되어지는 배열방 수이지 결코 의미있는 값을 저장하고 있는 방의 수가 아니라는 것이다.

a.length, a[0].length, a[1].length 값은?

int[][] a;
a = new int[4][];
a[0] = new int[3];
a[1] = new int[7];

main 메소드 호출할 때 파라미터로 String[] 배열 객체를 전달하는 방법

MainArgs.java

public class MainArgs {
  public static void main (String[] args) {
    System.out.print(args[0] + "년 ");
    System.out.print(args[1] + "월 ");
    System.out.print(args[2] + "일");
  }
}

소스를 컴파일하고 실행한다.

C:\javaApp>javac MainArgs.java

C:\javaApp>java MainArgs 2011 1 2
2011년 1월 2일