728x90
반응형

“ArrayList? Set? Hash 뭐시기? 그냥 배열에 때려 넣으면 안 돼요?”


1. Java Collections Framework(JCF)란?

JCF는 자바에서 데이터를 그룹으로 관리하기 위한 자료구조 라이브러리 집합입니다.
배열을 대체하고, 더 강력하게 데이터를 처리할 수 있게 해줍니다.


2. 컬렉션 상속 구조도

         ┌──────────┐
         │Collection│
         └────┬─────┘
      ┌────────┼────────┐
     List      Set     Queue
      │         │        │
┌─────┴─────┐  ┌┴┐     ┌─┴─┐
ArrayList  ... HashSet ...

※ Map은 Collection을 상속하진 않지만, 함께 묶어서 취급합니다.


3. 주요 인터페이스와 특징

✅ Set (중복 ❌, 순서 ❌)

구현체특징
HashSet 가장 빠른 접근 속도, 순서 없음
TreeSet 자동 정렬 가능 (오름차순/내림차순 설정 가능)
 

✅ List (중복 ⭕, 순서 ⭕)

구현체특징
ArrayList 인덱스 기반, 조회 성능 우수
LinkedList 삽입/삭제에 유리
Vector 동기화 지원. 구식이라 거의 안 씀
 

✅ Queue (선입선출 구조)

구현체특징
LinkedList 양방향 연결 구조
PriorityQueue 우선순위 기반 처리 가능
 

✅ Map (Key 중복 ❌, Value 중복 ⭕

구현체특징
HashMap 가장 자주 쓰이며, null 허용
TreeMap 자동 정렬
Hashtable 동기화 지원. null 금지, 구식
 

4. 언제 어떤 컬렉션을 써야 할까?

상황추천 컬렉션
중복 없이 저장 HashSet
인덱스 접근, 조회 위주 ArrayList
삽입/삭제 잦음 LinkedList
Key-Value 저장 HashMap
정렬된 데이터 필요 TreeSet, TreeMap
스레드 동기화 필요 Vector, Hashtable (하지만 잘 안 씀)
 

5. 한줄 요약

"Java 컬렉션은 목적에 맞게 잘 골라 써야 성능이 살아납니다!"

 

728x90
반응형

+ Recent posts