본문 바로가기

알고리즘 & 문제 해결 패턴/Java & SQL 면접 질문

자바 컬렉션 프레임워크(Collection) 면접 질문 정리

자바 컬렉션 프레임워크(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의 차이점은?

구분ArrayListLinkedList
데이터 구조배열 기반이중 연결 리스트
검색 속도빠름 (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 컬렉션 개념 정리

🔍 결론

자바 컬렉션 프레임워크는 **자료구조를 효과적으로 다룰 수 있는 핵심 기능**입니다.
면접에서는 **각 컬렉션의 특징과 차이점을 명확하게 설명할 수 있어야 합니다.** 🚀


📌 더 많은 정보가 궁금하다면?

📌 https://jins-pp.tistory.com/