[Java] 배열

이연수·2025년 5월 21일

Java

목록 보기
5/8

1. 배열이란?

같은 타입의 데이터를 연속된 공간에 저장하는 자료구조

⭐핵심 키워드 3개⭐

- 순서 O

- 연속된 공간에 저장 (Memory에 일렬로 저장)

- 인덱스로 접근 (0부터 번호가 매겨짐)

값들에 빠르게 접근하고 싶을 때 사용

자료형 배열이름[크기];
자료형 : 배열에 들어갈 값의 타입

배열 이름 : 배열을 식별할 수 있는 이름

[크기] : 배열이 몇 개의 요소를 담을 수 있는지 지정 (정수값)

2. 기본 예제

대표 예제1 : 기본 배열 선언, 초기화, 출력하기

public class ArrayExample1 {
    public static void main(String[] args) {
        // 정수형 배열 선언과 초기화
        int[] numbers = {1, 2, 3, 4, 5};

        // 배열 요소 출력
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("numbers[" + i + "] = " + numbers[i]);
        }
    }
}

코드 설명 :

- int[] numbers = {1, 2, 3, 4, 5}; -> 배열 선언과 동시에 값들 넣어서 초기화

- numbers.length로 배열 크기 확인하며 반복문으로 순회

- numbers[i]로 각 인덱스 요소 접근해 출력

- 인덱스 범위 벗어나면 ArrayIndexOutOfBoundsException 발생

대표 예제2 : 배열 요소 합계 구하기

public class ArraySumExample {
   public static void main(String[] args) {
       int[] arr = {1, 2, 3, 4, 5};

       int sum = 0;
       for (int num : arr) {
           sum += num;  // 배열 요소를 하나씩 더함
       }

       System.out.println("배열 요소의 합: " + sum);
   }
}

코드 설명 :

- int[] arr = {1, 2, 3, 4, 5}; -> 배열 선언과 동시에 값들 넣어서 초기화

- int sum = 0; -> 합계 저장할 변수 0으로 초기화

- for (int num : arr) sum += num; -> 향상된 for문으로 배열 요소 하나씩 더함

3. 자주 나오는 오류 TOP 3

1. ArrayIndexOutOfBoundsException

배열 인덱스를 범위 밖으로 접근할 때 발생
int[] arr = {1, 2, 3};
System.out.println(arr[3]);
오류 설명 : 배열의 유효 인덱스는 0부터 arr.length - 1까지.

위 코드는 3칸짜리 배열에서 arr[3]을 접근하려 해서 오류

해결법 :

System.out.println(arr[arr.length - 1]); 
❗반복문 쓸 때는 i < arr.length 조건 꼭 확인

2. NullPointerException

배열이 null인데 접근하거나 조작할 때 발생
int[] arr = null;
System.out.println(arr.length);
오류 설명 : 배열이 실제로 생성되지 않았는데 .length나 [0] 등을 쓰면 무조건 터짐.

해결법 :

System.out.println(arr[arr.length - 1]); 
❗배열 선언만 해놓고 new로 안 만든 경우, null이라는 점

3. 배열 초기화 실수

선언만 하고 배열을 바로 쓰는 실수
int[] arr;
arr[0] = 10;	
오류 설명 : arr은 참조만 되어 있고 실제 배열 공간은 없음.

메모리 공간이 없는데 값을 넣으려고 하니 안되는 것.

해결법 :

int[] arr = new int[3];
arr[0] = 10;
❗배열 선언만 해놓고 new로 안 만든 경우, null이라는 점

0개의 댓글