본문 바로가기

교육

java 배열

반응형


< 배열에 대해 >

같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 '배열'이라고 한다. 많은 양의 데이터를 저장하기 위해 그 데이터의 숫자만큼 변수를 선언해야 한다면 매우 불편하기 때문이다.



< 배열의 선언 >

타입 뒤에 붙이는 방법이 있고 변수 이름 뒤에 붙이는 방법이 있다.


1) 타입[] 변수 이름:

    int[ ] score :

    String[] name;


2) 타입 변수이름[ ];

    int score[ ];

    String name[ ];





< 배열의 생성 >

배열을 선언한 다음에는 배열을 생성해야 됨.


1) 형태

    타입[ ] 변수이름; // 배열을 선언(배열을 다루기 위한 참조변수 선언)

    int[ ] score = new int[5] // int 타입의 값 5개를 저장할 수 있는 배열


2) 선언과 생성을 동시에 하려면...

    타입[ ] 변수 이름 = new 타입 [ 길이 ]; 배열의 선언과 생성을 동시에...

    int [ ] score = new int [5] ;  // 길이가 5인 int 배열




< 배열의 초기화 >

배열은 생성과 동시에 자동적으로 자신의 타입에 해당하지 않는 기본값으로 초기화 된다.

그래서 배열을 사용하기 이전 별도 초기화 할 필요는 없지만 원하는 값을 저장하려면 아래와 같이 각 요소마다 값을 지정해야 한다.


배열을 사용하다보면 아래와 같이 요소들이 많아지는 경우가 있다.


int [ ] score = new int [ 5] ; // 길이가 5인 int형 배열을 생성한다.

score [ 0 ] = 50 ;

score [ 1 ] = 60 ;

score [ 2 ] = 70 ;

score [ 3 ] = 80 ;

score [ 4 ] = 90 ;


이렇게 하기 보단 아래처럼 for문을 사용하는 것이 낫다.


int [ ] score = new int [ 5 ]; // 길이가 5인 int형 배열을 생성한다.

for(int i = 0; i <score.length; i++)

    score[i] = i * 10 + 50;


그러나 for문으로 배열을 초기화하려면, 저장하려는 값에 일정한 규칙이 있어야만 가능하기 때문에 자바에서는 다음과 같이 배열을 간단히 초기화 할 수 있는 방법이 있다.


int [ ] score = new int [ ] { 50, 60, 70, 80, 90 }; // 배열의 생성과 초기화를 동시에 수행




< 배열의 출력 >

배열을 초기화 할 때 for 문을 사용하듯이, 배열에 저장된 값을 확인할 때도 아래와 같다.


int [ ] iArr = { 100, 95, 80, 70, 60 };

// 배열 요소들을 순서대로 하나씩 출력

for(int i =0; i <iArr.length; i++) {

    System.out.println(iArr[i]);

}



< 배열의 복사 >


int [ ] arr = new int [ 5 ] ;

...

int [ ] tmp = new int [arr.length*2]; // 기존 배열보다 길이가 2배인 배열 생성


for (int i=0; i <arr.length; i++)

tmp[ i ] = arr[ i ] ; // arr[i]의 값을 tmp[i]에 저장

arr = tmp; // 참조 변수 arr이 새로운 배열을 가르키게 한다.