자바 컬렉션 프레임워크(Collection) 면접 질문 정리
📌 컬렉션 프레임워크란?
자바의 컬렉션 프레임워크(Collection Framework)는 **데이터를 저장하고 조작할 수 있는 표준화된 인터페이스와 클래스의 집합**입니다.
List, Set, Map 등의 자료구조를 효율적으로 사용할 수 있도록 설계되어 있습니다.
📌 주요 면접 질문과 답변
1️⃣ 컬렉션(Collection)과 배열(Array)의 차이점은?
✅ 차이점:
- 배열(Array) – 고정 크기의 데이터 구조, 메모리 효율적, 배열 요소 타입 유지
- 컬렉션(Collection) – 크기 동적 조정 가능, 다양한 자료구조 지원 (List, Set, Map)
✅ 예제 코드:
// 배열
int[] arr = new int[5];
// 컬렉션 (ArrayList)
ArrayList list = new ArrayList<>();
list.add(10);
2️⃣ List, Set, Map의 차이점은?
컬렉션 | 특징 |
---|---|
List | 중복 허용, 순서 유지 (예: ArrayList, LinkedList) |
Set | 중복 불허, 순서 없음 (예: HashSet, TreeSet) |
Map | 키-값(Key-Value) 저장 구조, 키는 중복 불가 (예: HashMap, TreeMap) |
✅ 예제 코드:
List list = new ArrayList<>();
list.add("A");
list.add("A"); // 중복 허용
Set set = new HashSet<>();
set.add("A");
set.add("A"); // 중복 제거됨
Map map = new HashMap<>();
map.put(1, "One");
map.put(1, "New One"); // 키 중복 시 덮어쓰기
3️⃣ ArrayList와 LinkedList의 차이점은?
구분 | ArrayList | LinkedList |
---|---|---|
데이터 구조 | 배열 기반 | 이중 연결 리스트 |
검색 속도 | 빠름 (O(1)) | 느림 (O(n)) |
삽입/삭제 | 느림 (O(n)) | 빠름 (O(1) 또는 O(n)) |
메모리 사용 | 낮음 | 높음 (포인터 추가 저장 필요) |
✅ 예제 코드:
List arrayList = new ArrayList<>();
arrayList.add(1); // O(1) - 빠름
List linkedList = new LinkedList<>();
linkedList.add(1); // O(1) - 빠름
4️⃣ HashMap과 TreeMap의 차이점은?
- HashMap – 키(Key)의 정렬 순서 없음, O(1) 검색 속도
- TreeMap – 키(Key)가 오름차순 정렬됨, O(log n) 검색 속도
✅ 예제 코드:
Map hashMap = new HashMap<>();
hashMap.put(2, "B");
hashMap.put(1, "A");
System.out.println(hashMap); // {2=B, 1=A} (정렬 X)
Map treeMap = new TreeMap<>();
treeMap.put(2, "B");
treeMap.put(1, "A");
System.out.println(treeMap); // {1=A, 2=B} (정렬 O)
5️⃣ 동기화된 컬렉션(Synchronized Collection)과 Concurrent Collection의 차이점은?
✅ 차이점:
- 동기화된 컬렉션 – 단일 스레드에서 안전하지만, 멀티스레드 환경에서는 성능 저하 발생
- Concurrent 컬렉션 – 멀티스레드 환경에서도 효율적으로 동작하는 컬렉션 (예: ConcurrentHashMap)
✅ 예제 코드:
// 동기화된 컬렉션
List syncList = Collections.synchronizedList(new ArrayList<>());
// ConcurrentHashMap
Map concurrentMap = new ConcurrentHashMap<>();
📌 면접 대비 요약
- ✅ 컬렉션과 배열의 차이점 이해
- ✅ List, Set, Map의 차이점을 명확히 구분
- ✅ ArrayList vs LinkedList, HashMap vs TreeMap 차이 숙지
- ✅ 동기화된 컬렉션 vs Concurrent 컬렉션 개념 정리
🔍 결론
자바 컬렉션 프레임워크는 **자료구조를 효과적으로 다룰 수 있는 핵심 기능**입니다.
면접에서는 **각 컬렉션의 특징과 차이점을 명확하게 설명할 수 있어야 합니다.** 🚀
📌 더 많은 정보가 궁금하다면?
'알고리즘 & 문제 해결 패턴 > Java & SQL 면접 질문' 카테고리의 다른 글
[Java & SQL 면접 질문] SQL 성능 최적화 관련 면접 질문과 답변 정리 (1) | 2025.03.17 |
---|---|
[면접 & 코딩 테스트] Java & SQL 면접 질문 & 코딩 테스트 대비 (0) | 2025.03.11 |