자바

JAVA 자바 배열 타입 - 배열이란? , 배열의 선언

알통몬_ 2017. 3. 12. 18:52
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

변수는 한 개의 데이터만 저장할 수 있기 때문에 저장해야 할 데이터가 많아지면 그만큼 변수도 많이 필요하게 됩니다. 이럴 때 효율적으로 사용하기 위해 배열을 사용합니다.


배열 : 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스를 부여해 놓은 자료구조

예를 들어 학생 30명의 성적은 아래와 같이 scope 배열로 생성할 수 있습니다.

                                   scope 배열

                          87 , 76 , 88 , 90 , ...., 97

                 인덱스  0    1    2   3     ...,29

scope 배열의 각 인덱스는 각 행목의 데이터를 읽거나, 저장하는데 사용되며 다음과 같이 배열이름 옆에 대괄호에 기입합니다.

scope[인덱스]


학생들의 성적 평균 예제)

int sum = 0;

for(int i = 0;i<30;i++){

    sum += scope[i];

}

int avg = sum/30;



배열의 선언

 먼저 배열 변수를 선언해야 합니다.

 타입[] 변수;  또는 타입 변수[];  대괄호는 배열 변수를 선언하는 기호로 사용되는데 타입 뒤에 붙을수도 있고 변수 뒤에 붙을 수도 있습니다.

배열 변수도 참조 변수에 속합니다. 배열도 객체 이므로 힙 영역에 생성되고 

배열 변수는 힙 영역의 배열 객체를 참조하게 됩니다.

참조할 배열 객체가 없다면 null값으로 초기화될 수 있습니다.


배열 항목에 저장될 값의 목록이 있다면 아래와 같이 배열 객체를 만들 수 있습니다.


int scores[] = {1,2,3,4,5,6};

String names[] = {"알", "통", "몬"};


예제)

public class ArrayCreateByValueListExample1 {

public static void main(String[] args) {

int[] scores = { 83, 90, 87 };

System.out.println("scores[0] : " + scores[0]);

System.out.println("scores[1] : " + scores[1]);

System.out.println("scores[2] : " + scores[2]);

int sum = 0;

for(int i=0; i<3; i++) {

sum += scores[i];

}

System.out.println("총합 : " + sum);

double avg = (double) sum / 3;

System.out.println("평균 : " + avg);

}

}



주의하실 점은 

타입[] 변수;

변수 = {값0,값1,.....}; // 컴파일 에러

배열 변수를 미리 선언한 후 값 목록들이 나중에 결정되는 상황이라면 아래와 같이 new 연산자를 사용해서 값 목록을 지정해주어야 합니다.

변수 = new 타입[]{값0,값1,값2,....};

ex)

String[] names = null;

names = new String[]{"알", "통", "몬"};


메소드의 매개값이 배열일 경우에도 마찬가지 입니다.

예제)

public class ArrayCreateByValueListExample2 {

public static void main(String[] args) {

int[] scores;

scores = new int[] { 83, 90, 87 };

int sum1 = 0;

for(int i=0; i<3; i++) {

sum1 += scores[i];

}

System.out.println("총합 : " + sum1);

int sum2 = add( new int[] { 83, 90, 87 } );

System.out.println("총합 : " + sum2);

System.out.println();

}

public static int add(int[] scores) {

int sum = 0;

for(int i=0; i<3; i++) {

sum += scores[i];

}

return sum;

}

}


반응형