자바 개발하면서 List, Set, Map 구분 못 하면...
👉 NullPointerException, IndexOutOfBoundsException, 동기화 오류
줄줄이 터집니다.
그럼 PM이 와서 말하죠:
“그거... 그냥 ArrayList 말고 HashSet 쓰면 안 되나?”
| 중복 허용 | ✅ O | ❌ X | ✅ Value만 O |
| 순서 유지 | ✅ O | ❌ X (HashSet), ✅ TreeSet은 정렬됨 | ❌ X (정렬 불가) |
| 인덱스로 접근 | ✅ O (get(index)) | ❌ X | ❌ X |
| Key-Value 구조 | ❌ X | ❌ X | ✅ O |
| 대표 클래스 | ArrayList, LinkedList | HashSet, TreeSet | HashMap, TreeMap |
| 데이터 순서 유지 + 중복 허용 | ArrayList |
| 중복 없이 빠르게 저장 | HashSet |
| 정렬된 데이터 필요 | TreeSet, TreeMap |
| Key로 조회 필요 | HashMap |
| 삽입/삭제가 많음 | LinkedList |
List<String> list = new ArrayList<>(); // 순서 O, 중복 O
Set<String> set = new HashSet<>(); // 순서 X, 중복 X
Map<String, String> map = new HashMap<>(); // Key-Value
📌 기억법:
| 🧵 Virtual Threads 실전 활용법 — 진짜 운영 환경에서 쓰는 법 (0) | 2026.04.30 |
|---|---|
| 2026년 Java 버전 선택 가이드: Java 17, 21, 25 LTS 중 무엇을 써야 할까? (0) | 2026.04.30 |
| 🏷️JVM이란? 자바의 핵심 실행 엔진 구조 완벽 정리 (2) | 2025.07.30 |
| JDK vs JRE vs JVM 차이점 총정리 (0) | 2025.07.30 |
| ☕ Java 가비지 컬렉션(GC) 동작 원리 쉽게 정리! (0) | 2022.11.21 |