🧠 [Java 기초] 배열(Array)의 모든 것: 선언부터 정렬, 삭제, ArrayList까지
자바에서 배열은 여러 데이터를 효율적으로 관리하기 위한 핵심 도구
이 글에서는 정적 배열의 개념부터 다차원 배열, Arrays 클래스 활용법, 그리고 ArrayList(동적 배열)와의 차이점까지 정리
1️⃣ 배열이란? (정적 배열의 개념)
✔️ 정의
같은 타입의 데이터를 하나로 묶어 저장하는 공간
// >> new 데이터타입[배열의 길이];
int[] scores = new int[3]; // 요소의 개수가 3개인 배열을 생성
- int[]: 정수형 배열을 선언
- new int[3]: 길이 3의 배열 생성
- 모든 요소는 해당 타입의 기본값으로 초기화됨 (int → 0, String → null)
✔️ 주요 특징
- 인덱스: 0부터 시작
- 중복 허용
- 크기 고정 (변경 불가)
- 동일한 타입만 저장 가능
2️⃣ 배열 값 넣기 & 꺼내기
// 배열의 요소에 접근하여 데이터 변경(삽입)
scores1[0] = 80;
scores1[1] = 90;
scores1[2] = 85; // 전체 요소의 개수 - 1 == 마지막 인덱스 번호
System.out.println(scores1[0]); // 80
System.out.println(scores1[1]); // 90
System.out.println(scores1[2]); // 85
- 배열의 특정 위치에 접근할 때는 배열명[인덱스] 형태 사용
⚠️ 주의
System.out.println(scores[3]); // ArrayIndexOutOfBoundsException
- 배열 범위 초과 시 예외 발생
3️⃣ 배열 순회 (하나씩 출력하는 방법)
✅ 기본 for문
for (int i = 0; i < scores.length; i++) {
System.out.println(scores[i]);
}
- 배열의 길이만큼 반복하며 순차 출력
✅ 향상된 for문 (for-each문)
for (int score : scores) {
System.out.println(score);
}
- 배열의 모든 요소를 순서대로 꺼내는 방식
- 인덱스를 직접 다룰 필요 없을 때 간결하게 사용
4️⃣ 다차원 배열 (2차원 배열)
✔️ 정의
배열 안에 또 다른 배열이 있는 구조
테이블 형태의 데이터 저장에 적합
java
복사편집
int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
- matrix[1][2]: 두 번째 행, 세 번째 열의 값 (6)
✅ 출력 예시
java
복사편집
for (int[] row : matrix) { for (int val : row) { System.out.print(val + " "); } System.out.println(); }
출력 결과:
복사편집
1 2 3 4 5 6 7 8 9
5️⃣ 배열 삭제
자바 배열은 고정된 크기를 가지므로, 특정 요소를 삭제하는 직접적인 방법은 존재하지 않음
삭제할 요소를 제외한 나머지를 새로운 배열에 복사하여 사용
✅ 삭제 예제
java
복사편집
int[] original = { 1, 2, 3, 4 }; int removeIndex = 2; int[] newArray = new int[original.length - 1]; int k = 0; for (int i = 0; i < original.length; i++) { if (i == removeIndex) continue; newArray[k++] = original[i]; }
6️⃣ Arrays 클래스 활용
자바에서 배열을 더 편리하게 다루기 위한 java.util.Arrays 클래스 제공
java
복사편집
import java.util.Arrays;
📌 주요 기능 요약
기능메서드설명
| 정렬 | Arrays.sort(arr) | 오름차순 정렬 |
| 출력 | Arrays.toString(arr) | 배열을 문자열로 출력 |
| 검색 | Arrays.binarySearch(arr, key) | 이진 탐색 (정렬 필수) |
| 비교 | Arrays.equals(arr1, arr2) | 두 배열이 같은지 확인 |
| 채움 | Arrays.fill(arr, value) | 모든 요소를 특정 값으로 초기화 |
7️⃣ 동적 배열: ArrayList와의 차이점
✅ ArrayList란?
크기를 유동적으로 늘리거나 줄일 수 있는 배열 구조
java.util 패키지에 포함
java
복사편집
ArrayList<Integer> list = new ArrayList<>(); list.add(10); list.remove(0);
📌 정적 배열 vs 동적 배열 비교
| 항목 | 정적 배열 (Array) | 동적 배열 (ArrayList) |
| 크기 | 고정 | 유동적 |
| 타입 | 기본 타입 가능 | 참조 타입만 가능 (Integer 등) |
| 기능 | 저장, 조회 | 추가, 삭제, 수정, 정렬 등 다양 |
| 속도 | 빠름 | 기능이 많아 상대적으로 느림 |
📝 정리
자바 배열은 자료 구조의 기본
정적 배열은 빠르고 단순하지만 기능이 제한됨
동적 배열은 크기 조절이 자유롭고 다양한 메서드를 제공
Arrays 클래스는 배열을 다루는 강력한 도구
정적/동적 배열의 특징을 잘 파악하여 상황에 맞게 선택할 필요
'Back-End > Java' 카테고리의 다른 글
| Java 메서드 완벽 가이드: 개념부터 오버로딩까지 (1) | 2025.07.31 |
|---|---|
| 객체 지향 프로그래밍(OOP) 란? (3) | 2025.07.28 |
| if-중독자 탈출법.zip | 자바 제어문 제대로 써보자 (4) | 2025.07.20 |
| 자바 입문 0→1: 개념 부수고 실력 올리기 (1) | 2025.07.17 |
| 자바 처음 시작한다면 꼭 봐야 할 기초 개념 모음 (0) | 2025.07.15 |