Java (배열 Array)

최병현·2025년 12월 31일

java

목록 보기
18/38

1. 배열의 필요성

지금까지 배운 방식대로라면 정수형 데이터 10개를 저장하려면 int 변수를 10개 선언해야 한다. 하지만 데이터가 늘어날수록 변수 선언이 많아지고 관리가 어려워진다.

배열(Array)은 같은 자료형의 여러 데이터를 하나의 변수로 묶어서 관리하는 구조이다. (이 내용은 Java 기준이다.)

  • 같은 타입의 데이터를 한 번에 관리 가능
  • 반복문과 결합해서 효율적인 처리 가능

2. 배열 선언 방식

배열 선언 기본 문법은 다음과 같다.

자료형[] 변수명;

선언과 동시에 초기화하는 방식은 다음과 같다.

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

3. 배열 기본 예제 (Array01)

배열을 System.out.println(arr01)처럼 출력하면 배열 내부 값이 아니라 주소값(@ 포함)이 출력된다. 배열 내부의 element를 확인하려면 index로 접근해야 한다.

public class Array01 {
    public static void main(String[] args) {

        // 배열 선언 및 초기화
        int[] arr01 = {1, 2, 3, 4, 5};

        // 배열 자체를 출력하면 주소값만 출력됨
        System.out.println(arr01);

        // 배열명[index] 형태로 element 접근 가능
        System.out.println(arr01[0]);
        System.out.println(arr01[1]);
        System.out.println(arr01[2]);
        System.out.println(arr01[3]);
        System.out.println(arr01[4]);

        // for문을 이용한 전체 출력
        for (int i = 0; i < arr01.length; i++) {
            System.out.print(arr01[i] + " ");
        }
    }
}

4. index와 length 개념

  • 배열의 각 칸은 index(주소지)로 구분된다.
  • index는 0부터 시작한다.
  • 마지막 index는 배열 길이 - 1이다.

배열을 순회할 때는 항상 다음 형태를 사용하는 것이 안전하다.

for (int i = 0; i < 배열명.length; i++)

5. 빈 배열 생성과 기본값

Java에서 new로 배열을 생성하면 방의 개수를 미리 지정해야 한다. 또한 자료형에 따라 기본값으로 자동 초기화된다.

  • int0
  • double0.0
  • Stringnull
public class ArrayInit {
    public static void main(String[] args) {
        int[] arr03 = new int[10];
        System.out.println(arr03[0]); // 0

        // 특정 index 값 대입
        arr03[0] = 10;
        System.out.println(arr03[0]); // 10
    }
}

6. 빈 배열에 값 채우기 예제 (41 ~ 80)

40칸짜리 배열을 만들고, 41부터 80까지 순서대로 대입한 뒤 출력하는 예제이다.

public class ArrayFill {
    public static void main(String[] args) {

        int[] arr04 = new int[40];

        for (int i = 0; i < arr04.length; i++) {
            arr04[i] = i + 41;
            System.out.print(arr04[i] + " ");
        }
    }
}

7. String 배열 예제 ("안녕하세요" 출력)

String 배열을 만들어 "안", "녕", "하", "세", "요"를 저장하고 한 번에 출력한다.

public class ArrayString {
    public static void main(String[] args) {

        String[] arr05 = {"안", "녕", "하", "세", "요"};

        for (int i = 0; i < arr05.length; i++) {
            System.out.print(arr05[i]);
        }
    }
}

8. 입력값을 활용한 배열 예제 (Array02)

사용자에게 입력받은 값으로 배열 크기를 정하고, 반복문으로 데이터를 저장한 뒤 총합을 계산하는 예제이다. 배열과 반복문이 결합되면 동적인 데이터 처리가 가능해진다.

import java.util.Scanner;

public class Array02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("몇 명의 학생을 등록하시겠습니까?: ");
        int num1 = scanner.nextInt();
        String[] humans = new String[num1];

        for (int i = 0; i < num1; i++) {
            System.out.print((i + 1) + "번 학생의 이름을 등록하세요: ");
            humans[i] = scanner.next();
        }

        System.out.print("몇 명의 학생 점수를 입력하시겠습니까?: ");
        int num2 = scanner.nextInt();
        double[] scores = new double[num2];

        double sum = 0;
        for (int j = 0; j < num2; j++) {
            System.out.print((j + 1) + "번 학생의 점수를 입력하세요: ");
            scores[j] = scanner.nextDouble();
            sum += scores[j];
        }

        System.out.println("학생들의 점수 총합은 " + sum + "점 입니다.");
        scanner.close();
    }
}

9. 오늘 정리하며 느낀 점

배열은 단순히 변수를 여러 개 묶는 문법이 아니라, 반복문과 결합했을 때 진짜 힘을 발휘하는 구조라는 걸 느꼈다. 특히 length를 기준으로 순회하는 습관을 들이지 않으면 index 오류가 쉽게 발생할 수 있다는 점도 중요했다.

앞으로 객체 배열, 2차원 배열로 확장될 때도 지금 배운 index와 length 개념이 그대로 기반이 된다. 그래서 배열은 반드시 정확히 이해하고 넘어가야 할 핵심 개념이라고 느꼈다.

profile
Develop

0개의 댓글