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
반응형
'Programming > JAVA' 카테고리의 다른 글
| 📌 자바(Java)란 무엇인가? 객체지향 프로그래밍의 대표 주자 (0) | 2022.10.27 |
|---|---|
| 📌 객체지향 언어란? 클래스와 객체, 그리고 자바의 핵심 개념 총정리 (0) | 2022.10.27 |
| [동시성 이슈해결] HashMap보다는 ConcurrentHashMap을 쓰자! (0) | 2022.10.27 |
| 자바 환경변수 설정(JAVA_HOME, PATH, CLASSPATH) (0) | 2022.10.26 |
| 자바 로또 당첨 확인 (0) | 2022.06.18 |