6. 배열(Array)

박은서's avatar
Dec 08, 2025
6. 배열(Array)

1. 배열(Array)

교재 p.52-63 2.2 변수와 자료형

1️⃣ 배열이란?

같은 종류의 데이터를 일정한 순서로 연속해서 저장하는 자료구조.
(저장된 위치에는 번호(인덱스)가 붙어 있어, 즉시 접근할 수 있음)
→ 똑같은 크기의 칸들이 일렬로 붙어 있는 데이터 보관 상자

2️⃣ 배열이 필요한 이유

배열이 없으면
inta1=90; inta2=85; inta3=100;
배열 사용
int[] scores = {90,85,100};
➡️ 코드가 짧아지고, 반복문 사용 가능

3️⃣ 배열의 특징

① 인덱스로 즉시 접근 가능 (빠름)
② 같은 자료형만 저장
③ 크기가 고정 (생성 후 변경 불가)
④ 연속된 메모리 공간에 저장됨
그래서 접근 속도가 빠른 대신, 중간에 끼워 넣거나 삭제하기는 어려움.
⑤ 인덱스는 0부터 시작

4️⃣ 배열 선언 방법

① 선언
int[] arr;
② 생성
arr =newint[5];
③ 선언 + 생성
int[] arr =newint[5];
④ 초기화와 동시에 생성
int[] arr = {1,2,3,4,5};

5️⃣ 배열과 메모리

  • 배열은 참조 타입
  • 실제 데이터는 Heap
  • 변수에는 주소가 저장됨

6️⃣ 배열의 장단점

장점

  • 빠른 접근 속도 (O(1))
  • 반복 처리에 유리

단점

  • 크기 변경 불가
  • 중간 삽입/삭제 어려움

7️⃣ 배열 VS 컬렉션

구분
배열
ArrayList
크기
고정
가변
타입
하나
제네릭
성능
빠름
약간 느림
 

2. 2차원 배열(2D Array)

1️⃣ 2차원 배열이란?

1) 개념

행(Row)과 열(Column)로 이루어진 ‘표(table)’ 형태의 배열
  • 배열 안에 또 다른 배열이 들어 있는 구조
  • 배열[행][열]
[1][2][3] [4][5][6]

2) 예

int[][] arr = { {1, 2, 3}, {4, 5, 6} };
이건 2행 3열짜리 배열
  • arr[0][0] → 1
  • arr[0][1] → 2
  • arr[1][2] → 6
첫 번째 []는 행 번호, 두 번째 []는 열 번호를 의미

2️⃣ 2차원 배열 사용 방법

1) 선언과 생성

int[][] arr =newint[2][3];// 2행 3열
또는
int[][] arr = { {1,2,3}, {4,5,6} };

3) 접근

arr[0][1]; // 2 arr[1][2]; // 6

3️⃣ 2차원 배열의 특징

① “행과 열”로 이루어진 표 구조
그래서 표 형태의 데이터(좌표, 지도, 게임판 등)를 표현하기에 좋음.
② 인덱스로 각각 접근
③ 크기 고정
④ 행마다 열의 길이가 달라도 됨 (자바에서 가능)
[1,2,3] [4,5] [6,7,8,9]
→ 이런 걸 가변 배열(Jagged Array) 라고 함
 
Share article