본문 바로가기

JAVA

[Java] 수업 정리 29 배열1 (24.12.05)

배열이란?

동일한 자료형 (Data Type)의 데이터를 연속도니 공간에 저장하기 위한 자료구조이다.

즉, 연관된 데이터를 그룹화하여 묶어준다고 생각하면 된다

 

배열의 장점

 연관된 데이터를 저장하기 위한 변수의 선언을 줄여주며, 반복문 등을 이용하여 계산과 같은 과정을 쉽게 처리할 수 있다.

 

배열 선언 및 사용

배열을 정의하는 방법은 크기 2가지가 있다.

1. 자료형[ ] 변수 = {데이터1, 데이터2, 데이터3, ... ) ;

   첫 번째 방법은 데이터들의 값을 알고 있을 때 사용하면 편리

ex) 우리가 자주가는 대형마트를 생각해보면, 과자가 있는 코너, 소스 코너, 라면 코드 등등 고객들과 직원들이 찾기 편하게 섹션 별로 분류되어 진열이 되어있다.

따라서 우리는 사고사 하는 상품이 있는 코너로 이동하게 된다

맥주를 파는 코너로 이동하였다고 생각 했을 때 거기에는 또 다시 맥주별로 이름이 붙어있고 품목별로 분류되어 진열되어있다.

이러한 점이 배열과 비슷하다

public class ArrayEx01 {
         public static void main(String[ ] args) {
                    String[ ] beer = {"Cass", "Terra", "Krush", "Kirin", "Asahi"};
                            // 인덱스 번호 =   0,     1    ,      2     ,     3    ,     4     
                    System.out.println(beer[0]);    // Cass 
                    System.out.println(beer[1]);    //  Terra
                    System.out.println(beer[2]);    //  Krush
                    System.out.println(beer[3]);    //  Kirin
                    System.out.println(beer[4]);    //  Asahi

 

beer라는 String변수에 데이터를 저장하였다.

저장한 데이터들을 출력하기 위해서는 인덱스 번호라는 것에 대해 알아야한다.

인덱스 번호는 데이터를 저장한 순서대로 0부터 시작하여 1씩 증가되어 만들어진다.

인덱스 번호는 맥주를 품목별로 구분하기 위한 구분자라고 생각하면 된다.

즉, beer라는 배열에 0~4까지의 index 번호를 가진 5개의 공간(length)에 데이터들이 저장이 되어있다.

이것을 그림으로 표현하면 아래와 같다

 

length(배열의 크기) 5
element(데이터 값) Cass Terra Krush Kirin Asahi
index(구분자) 0 1 2 3 4

 

public class ArrayEx02 {
           public static void main(String[ ] args) { 
                      int [ ] score = { 93, 75, 95, 80, 45} ;
                      int sum = 0;
                      for (int 1 = 0, i < score.length; i++) {         // score.length = 5
                               sum += score[ i ] ;      // sum = sum + score[ i ] ;
                       }
                       double avg = (double) sum / score.length;     // 형변환
                       System.out.println("점수 합계 : " + sum);       // 결과 : 388
                       System.out.println("점수 평균 : " + avg);        // 결과 : 77.6
            }
}

 

score라는 int형 배열을 만들고 계산과 형변환을 통해 총합과 평균 값을 구했다.

배열의 인덱스 번호를 이용해서 반복문을 사용하게 되면 쉽게 처리가 가능하다

 

여기서 반복문 조건식을 살펴보면

i < score.length 라는 속성을 상요하였는데 

이것은 위에서 설명했던 것처럼 배열의 크기(길이)를 의미한다.

score에 값을 추가하거나 제거한다고 했을 때 score.length는 수정할 필요가 없다.

또한 배열의 크기를 모를 때도 length를 사용하여 반복문을 작동시킬 수 있는 장점이 있다.