Java

JAVA 기초 정리 - 배열(Array)

chungmani 2026. 5. 15. 14:19

 

배열(Array)이란?

배열은:

"비슷한 데이터를 하나의 그룹으로 묶어서 저장하는 방법"

이라고 이해할 수 있다.

예를 들어 모험가 이름을 저장한다고 하면:

String name1 = "Wony";
String name2 = "Steve";

이렇게 하나씩 저장할 수도 있지만,

배열을 사용하면:

String[] adventurerList = {"Wony", "Steve"};

처럼 한 번에 관리할 수 있다.


1. 배열 선언

배열은 new 키워드를 사용해서 생성한다.

배열 선언 기본 구조

자료형[] 변수이름 = new 자료형[배열길이];

예시:

int[] arr = new int[5];

위 코드는 길이가 5인 정수형 배열을 생성한 것이다.

배열 생성 과정

int[] arr;

배열 변수 선언

arr = new int[5];

배열 길이 할당

int[] arr = new int[5];

선언과 동시에 생성


배열 요소 직접 저장하기

배열은 생성과 동시에 값을 넣을 수도 있다.

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

배열 내부 모습은 다음과 비슷하다.

[10] [20] [30] [40] [50]

배열의 길이(length)

배열 길이는 .length 로 확인할 수 있다.

int arrLength = arr.length;

System.out.println(arrLength);

출력 결과:

5

다양한 배열 선언

문자열 배열

String[] strArr = new String[5];

논리형 배열

boolean[] booleanArr = new boolean[3];

 


2. 배열의 요소(Element)

배열 안에 들어있는 각각의 값을 배열의 요소(Element)라고 한다.

예를 들어:

int[] arr = {10, 20, 30};

여기서:

  • 10
  • 20
  • 30

각각이 배열의 요소이다.


3. 배열 요소 접근하기

배열의 값에 접근하려면 인덱스(Index)를 사용해야 한다.

인덱스(Index)

배열은 0부터 시작한다.

int[] arr = {10, 20, 30, 40, 50};
//           [0] [1] [2] [3] [4]

배열 요소 출력하기

System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);

출력 결과:

10
20
30

배열 값 수정하기

인덱스를 사용하면 배열 값 수정도 가능하다.

arr[0] = 100;

변경 후 배열 상태:

[100] [20] [30] [40] [50]

인덱스 사용 시 주의점

배열은 0부터 시작하기 때문에 주의해야 한다.

예를 들어 길이가 5인 배열이라면:

[0] [1] [2] [3] [4]

마지막 요소는 4이다.

즉:

"5번째 요소를 찾을 때 index는 5가 아니라 4"

라는 점을 기억해야 한다.


4. 배열 탐색

배열은 반복문과 함께 자주 사용된다.

기본 for문 활용

for (int i = 0; i < arr.length; i++) {

    System.out.println("인덱스: " + i + " 값: " + arr[i]);

}

배열 길이만큼 반복하면서 모든 요소를 탐색할 수 있다.


향상된 for문

실무에서는 향상된 for문도 많이 사용한다고 한다.

기본 구조

for (배열요소 : 배열) {

}

예시:

for (int a : arr) {

    System.out.println(a);

}

배열 안의 값을 하나씩 꺼내서 사용할 수 있다.

코드가 훨씬 깔끔한 느낌이었다.


5. 2차원 배열

2차원 배열은 행과 열 구조를 가지는 배열이다.

좌표, 게임판, 지도 같은 데이터를 표현할 때 자주 사용된다.

2차원 배열 구조

boolean[][] board = new boolean[2][3];

배열 구조는 다음과 비슷하다.

[] [] []
[] [] []

2차원 배열 선언과 초기화

boolean[][] board = {
    {true, false},
    {false, true}
};

요소 접근하기

System.out.println(board[0][0]);
System.out.println(board[0][1]);

여기서:

  • 첫 번째 인덱스 → 행(row)
  • 두 번째 인덱스 → 열(column)

을 의미한다.


실습 과제 - 검은 돌 좌표 찾기

2차원 배열을 활용해서 true 값의 좌표를 찾는 실습도 진행했다.

for (int i = 0; i < board.length; i++) {

    for (int j = 0; j < board[i].length; j++) {

        if (board[i][j]) {

            System.out.println("검은돌 위치: (" + i + "," + j + ")");

        }
    }
}

중요한 포인트

board.length

→ 행(row)의 개수

board[i].length

→ i번째 행의 열(column) 개수

처음에는 2차원 배열이 굉장히 어렵게 느껴졌는데,
좌표 개념이라고 생각하니까 조금 이해가 되기 시작했다 😊