자바/자바 기초
자바 배열과 컬렉션 프레임워크 기초 완벽 가이드
끄적인다
2025. 4. 22. 23:21
반응형
자바에서 데이터를 다룰 때 가장 기본이 되는 것이 **배열(Array)**이며, 더 복잡한 자료 구조를 효율적으로 관리할 수 있게 도와주는 것이 **컬렉션 프레임워크(Collection Framework)**입니다. 이 글에서는 배열과 컬렉션의 기본 개념과 차이점, 그리고 각각의 사용법을 예제를 중심으로 쉽게 정리합니다.
📦 1. 배열(Array)이란?
배열은 같은 타입의 데이터를 고정된 크기로 저장할 수 있는 자료 구조입니다.
✅ 배열 선언과 초기화
int[] numbers = new int[5]; // 정수형 배열 선언
String[] names = {"철수", "영희", "민수"}; // 문자열 배열 초기화
✅ 배열 요소 접근
배열의 인덱스는 0부터 시작합니다.
System.out.println(names[1]); // "영희" 출력
✅ 배열의 한계
- 크기가 고정되어 변경 불가능
- 삽입/삭제가 비효율적
- 다양한 자료형 혼합 불가
그래서 등장한 것이 컬렉션 프레임워크입니다!
📚 2. 컬렉션 프레임워크란?
컬렉션 프레임워크는 데이터 그룹을 효율적으로 저장하고 처리할 수 있는 클래스들의 집합입니다. 배열보다 유연하고 다양한 기능을 제공합니다.
🌳 주요 인터페이스
인터페이스설명대표 구현 클래스
List | 순서 있고 중복 허용 | ArrayList, LinkedList |
Set | 순서 없고 중복 허용 안 함 | HashSet, TreeSet |
Map | 키-값 쌍 저장 | HashMap, TreeMap |
📝 3. List 예제 - ArrayList
순서가 있고, 중복된 값을 저장할 수 있습니다.
import java.util.ArrayList;
ArrayList<String> list = new ArrayList<>();
list.add("사과");
list.add("바나나");
list.add("사과");
System.out.println(list); // [사과, 바나나, 사과]
🔹 주요 메서드
- add(값): 값 추가
- get(인덱스): 값 조회
- remove(인덱스/값): 값 제거
- size(): 전체 크기
🌿 4. Set 예제 - HashSet
중복을 허용하지 않고, 순서를 보장하지 않습니다.
import java.util.HashSet;
HashSet<String> set = new HashSet<>();
set.add("Java");
set.add("Python");
set.add("Java"); // 중복
System.out.println(set); // [Java, Python] (순서는 랜덤)
🧭 5. Map 예제 - HashMap
Key-Value 구조로 데이터를 저장합니다.
import java.util.HashMap;
HashMap<String, Integer> scores = new HashMap<>();
scores.put("철수", 90);
scores.put("영희", 85);
scores.put("철수", 95); // 기존 값 덮어씀
System.out.println(scores); // {영희=85, 철수=95}
🔹 주요 메서드
- put(키, 값): 데이터 삽입
- get(키): 값 조회
- remove(키): 항목 제거
- containsKey(키): 키 존재 여부 확인
✅ 배열 vs 컬렉션 정리
항목 | 배열 | 컬렉션 프레임워크 |
크기 변경 | 불가능 | 가능 (자동 확장) |
자료형 | 하나만 저장 | 다양한 객체 저장 가능 |
삽입/삭제 | 비효율적 | 효율적 (내부 구현 최적화) |
주요 사용처 | 고정 데이터 처리 | 동적 데이터 처리 |
🏁 마무리
- 배열은 간단한 구조에 적합하지만 기능은 제한적입니다.
- 컬렉션 프레임워크는 다양한 요구에 맞춰 유연하고 강력한 자료 구조를 제공합니다.
자바 프로그래밍에서 데이터를 다루는 모든 기본은 여기서 시작되므로, 배열과 컬렉션의 구조와 차이를 정확히 이해하고 있어야 합니다. 다음 단계로는 각 컬렉션의 성능 차이와 활용 예제를 연습해보세요! 🚀
반응형