Java 자바 배열 (Array) 선언 및 사용 방법

배열이란?

자바 배열은 동일한 자료형의 여러 요소를 하나의 변수에 저장하는 자료구조입니다. 이 변수는 배열이라 불리며, 각 요소는 인덱스를 이용하여 접근할 수 있습니다. 자바에서 배열은 정적으로 선언되며, 한 번 생성된 배열의 크기는 변경할 수 없습니다. 배열은 프로그램에서 데이터를 효율적으로 관리하고 처리하는 데에 자주 사용되며, 순회, 검색, 정렬 등 다양한 연산에 활용됩니다.

배열의 특징

  1. 동일한 데이터 유형의 요소:
    • 배열은 동일한 데이터 유형의 요소들로 이루어져 있습니다. 예를 들어, 정수 배열은 모든 요소가 정수입니다.
  2. 고정된 크기:
    • 배열은 생성될 때 크기가 고정되며, 한 번 지정된 크기는 변경할 수 없습니다. 이는 메모리를 미리 할당하는 정적 할당을 의미합니다.
  3. 연속된 메모리:
    • 배열의 요소들은 메모리 상에서 연속적으로 저장되어 있어, 인덱스를 통한 효율적인 접근이 가능합니다.
  4. 편리한 인덱스 사용:
    • 배열은 각 요소에 대한 인덱스를 제공하여 빠르고 쉬운 접근을 가능하게 합니다. 이로 인해 요소에 접근하거나 값을 변경하는 것이 용이합니다.
  5. 메모리 주소와 참조:
    • 배열 변수는 해당 배열의 시작 메모리 주소를 가리키는 참조로 볼 수 있습니다. 이를 통해 배열에 효과적으로 접근할 수 있습니다.
  6. 다차원 배열:
    • 자바에서는 다차원 배열도 지원됩니다. 이는 배열 안에 배열이 포함된 형태로, 행렬이나 3D 공간 등을 모델링할 수 있습니다.

배열 생성 방법

자바에서 배열을 선언하는 구조는 다음과 같습니다.

Java
// 기본 선언
자료형[] 배열이름;

// 배열 선언 후 생성
자료형[] 배열이름;
배열이름 = new 자료형[크기];

// 배열 선언과 동시에 생성
자료형[] 배열이름 = new 자료형[크기];

// 배열 리터럴을 사용한 초기화
자료형[] 배열이름 = {값1, 값2, 값3, ...};

// 배열 생성 후 개별적인 요소에 값 할당
자료형[] 배열이름 = new 자료형[크기];
배열이름[인덱스1] = 값1;
배열이름[인덱스2] = 값2;
// ...

// 다차원 배열 선언
자료형[][] 배열이름 = new 자료형[행의개수][열의개수];
Java

배열 생성 예제

배열 선언 후 생성

배열을 선언한 후 new 키워드를 사용하여 배열을 생성합니다.

Java
// 정수형 배열 선언 후 생성
int[] numbers;
numbers = new int[5]; // 5개의 정수를 저장할 수 있는 배열 생성
Java

배열 선언과 동시에 생성

배열 선언과 동시에 new 키워드를 사용하여 배열을 생성합니다. 가장 간결하고 일반적인 방법 중 하나입니다.

Java
// 정수형 배열 선언과 동시에 생성
int[] numbers = new int[5]; // 5개의 정수를 저장할 수 있는 배열 생성
Java

배열 리터럴을 사용한 초기화

배열을 선언하면서 동시에 초기값을 지정하여 생성합니다. 요소의 개수에 따라 배열의 크기가 자동으로 결정됩니다.

Java
// 정수형 배열 선언과 동시에 초기화
int[] numbers = {1, 2, 3, 4, 5}; // 배열 리터럴을 사용한 초기화
Java

배열 생성 후 개별적인 요소에 값 할당

배열을 생성하고, 각 요소에 개별적으로 값을 할당하는 방법입니다.

Java
// 정수형 배열 선언 및 생성
int[] numbers = new int[5];

// 배열 원소에 값을 할당하여 초기화
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;
Java

다차원 배열 선언

2차원 배열을 선언하면서 동시에 크기를 지정하여 생성합니다. 이러한 방식으로 다차원 배열을 생성할 수 있습니다.

Java
// 2차원 배열 선언과 동시에 생성
int[][] matrix = new int[3][3]; // 3x3 행렬 생성
Java

배열 접근 방법

배열을 접근하는 방법은 배열의 인덱스를 사용하여 각 요소에 접근하는 것입니다. 자바에서 배열은 0부터 시작하는 인덱스를 갖습니다. 아래는 배열을 접근하는 다양한 방법입니다:

인덱스를 이용한 직접 접근

배열의 특정 위치에 있는 요소에 접근하는 가장 기본적인 방법으로, 인덱스를 사용하여 해당 위치의 요소에 직접 접근합니다.

Java
int[] numbers = {10, 20, 30, 40, 50};
int 첫번째요소 = numbers[0]; // 10
int 세번째요소 = numbers[2]; // 30
Java

반복문을 활용한 순회

배열의 모든 요소에 접근하기 위해 반복문을 사용할 수 있습니다. 주로 for나 foreach를 사용하여 배열을 순회하며 각 요소에 접근합니다.

Java
int[] numbers = {10, 20, 30, 40, 50};

// for문을 사용한 순회
for (int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
}

// foreach문을 사용한 순회
for (int number : numbers) {
    System.out.println(number);
}
Java

배열 길이 활용

배열의 length 속성을 활용하여 배열의 길이를 알 수 있습니다. 이를 활용하여 모든 요소에 접근할 수 있습니다.

Java
int[] numbers = {10, 20, 30, 40, 50};

for (int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
}
Java

배열을 접근하는 방법은 간단하지만 주의할 점은 배열의 인덱스는 0부터 시작한다는 점입니다. 따라서 첫 번째 요소는 array[0]이 됩니다.

배열 활용 예제

Java
public class 성적관리프로그램 {
    public static void main(String[] args) {
        // 5명의 학생 성적을 저장하는 배열 생성
        int[] 성적 = new int[5];

        // 각 학생의 성적을 배열에 입력
        성적[0] = 90;
        성적[1] = 85;
        성적[2] = 88;
        성적[3] = 92;
        성적[4] = 78;

        // 배열을 이용한 성적 평균 계산
        double 평균 = 0;
        for (int i = 0; i < 성적.length; i++) {
            평균 += 성적[i];
        }
        평균 /= 성적.length;

        // 성적 출력
        System.out.println("학생 성적:");
        for (int i = 0; i < 성적.length; i++) {
            System.out.println("학생 " + (i + 1) + ": " + 성적[i] + "점");
        }

        // 평균 출력
        System.out.println("전체 평균 성적: " + 평균 + "점");
    }
}
Java
  1. 배열 생성:
    • int[] 성적 = new int[5];는 5명의 학생 성적을 저장할 배열을 생성합니다.
  2. 성적 입력:
    • 성적[0] = 90;, 성적[1] = 85; 등을 통해 각 학생의 성적을 배열에 입력합니다.
  3. 평균 계산:
    • for 루프를 사용하여 배열의 모든 요소를 더하고, 나누어 평균을 계산합니다.
  4. 성적 및 평균 출력:
    • for 루프를 사용하여 각 학생의 성적을 출력하고, 마지막에는 전체 평균 성적을 출력합니다.

결론

자바의 배열은 동일한 자료형의 여러 요소를 하나의 변수에 저장하는 자료구조로, 프로그램에서 데이터를 효율적으로 관리하고 처리하는 데에 활용됩니다. 배열은 정적으로 선언되며 크기는 한 번 생성된 후 변경할 수 없습니다. 각 요소는 인덱스를 통해 접근 되며, 연속된 메모리 위치에 저장되어 있어 효율적인 데이터 접근이 가능합니다.

Leave a Comment