728x90
반응형
SMALL
😊 HashMap, LinkedHashMap, TreeMap 사용법과 차이점 쉽게 이해하기
Map
은 자바에서 키(Key)와 값(Value)을 쌍으로 저장하는 데이터 구조예요.
쉽게 말하면 "이름표(Key)가 붙은 상자(Value)" 라고 생각하면 돼요.
예를 들어,
- "이름(Key)" → "하영(Value)"
- "나이(Key)" → "25(Value)"
🛠️ Map의 주요 특징
- Key: 중복을 허용하지 않아요!
- Value: 중복을 허용해요.
- 데이터를 빠르게 추가, 조회, 삭제할 수 있어요.
😊 Map의 종류와 차이점
- HashMap: 순서를 보장하지 않음 (가장 빠른 Map).
- LinkedHashMap: 입력된 순서를 유지해줌.
- TreeMap: Key 값을 정렬된 순서로 저장해줌.
이제 각각의 예제와 함께 사용법을 알아봐요! 🧐✨
🧩 1. HashMap
🧐 HashMap 특징
- 데이터를 Key-Value 쌍으로 저장해요.
- 순서를 유지하지 않아요 (무작위로 저장됨).
- 데이터를 빠르게 추가하고 조회할 수 있어요. 🚀
😊 HashMap 예제 코드
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
// 😊 HashMap 만들기
HashMap<String, Integer> scores = new HashMap<>();
// 😊 Key-Value 쌍 추가하기
scores.put("하영", 95); // 이름(Key), 점수(Value)
scores.put("민수", 88);
scores.put("지수", 92);
scores.put("민수", 90); // Key가 같으면 값이 덮어써져요!
// 😊 HashMap 출력
System.out.println("HashMap: " + scores);
// 😊 특정 Key의 값 가져오기
System.out.println("민수의 점수: " + scores.get("민수"));
// 😊 Key-Value 삭제하기
scores.remove("지수");
System.out.println("지수를 삭제한 후 HashMap: " + scores);
}
}
🔍 출력 결과
HashMap: {하영=95, 민수=90, 지수=92}
민수의 점수: 90
지수를 삭제한 후 HashMap: {하영=95, 민수=90}
🧩 설명
put()
: Key-Value를 추가해요.- Key가 중복되면 가장 마지막 값으로 덮어써져요.
get(Key)
: Key를 사용해 값을 가져와요.remove()
: Key와 해당 값을 삭제해요.
🧩 2. LinkedHashMap
🧐 LinkedHashMap 특징
- 데이터를 입력한 순서대로 저장해요. 😊
- 중복된 Key는 덮어쓰여요.
😊 LinkedHashMap 예제 코드
import java.util.LinkedHashMap;
public class LinkedHashMapExample {
public static void main(String[] args) {
// 😊 LinkedHashMap 만들기
LinkedHashMap<String, String> capitals = new LinkedHashMap<>();
// 😊 Key-Value 쌍 추가하기
capitals.put("한국", "서울");
capitals.put("일본", "도쿄");
capitals.put("중국", "베이징");
capitals.put("일본", "오사카"); // Key 중복 → 값이 덮어써져요!
// 😊 LinkedHashMap 출력
System.out.println("LinkedHashMap: " + capitals);
// 😊 특정 Key의 값 가져오기
System.out.println("일본의 수도: " + capitals.get("일본"));
}
}
🔍 출력 결과
LinkedHashMap: {한국=서울, 일본=오사카, 중국=베이징}
일본의 수도: 오사카
🧩 설명
- 데이터가 입력된 순서대로 저장돼요.
- Key 중복 시 값이 덮어써져요.
🧩 3. TreeMap
🧐 TreeMap 특징
- 데이터를 Key의 정렬된 순서로 저장해요.
- 기본적으로 오름차순으로 정렬됩니다.
😊 TreeMap 예제 코드
import java.util.TreeMap;
public class TreeMapExample {
public static void main(String[] args) {
// 😊 TreeMap 만들기
TreeMap<Integer, String> students = new TreeMap<>();
// 😊 Key-Value 쌍 추가하기
students.put(3, "하영");
students.put(1, "민수");
students.put(2, "지수");
// 😊 TreeMap 출력
System.out.println("TreeMap: " + students);
// 😊 가장 낮은 Key와 높은 Key 가져오기
System.out.println("가장 낮은 Key의 학생: " + students.firstEntry());
System.out.println("가장 높은 Key의 학생: " + students.lastEntry());
}
}
🔍 출력 결과
TreeMap: {1=민수, 2=지수, 3=하영}
가장 낮은 Key의 학생: 1=민수
가장 높은 Key의 학생: 3=하영
🧩 설명
- Key가 자동으로 정렬돼서 저장돼요.
firstEntry()
→ 가장 낮은 Key를 가져와요.lastEntry()
→ 가장 높은 Key를 가져와요.
😊 HashMap, LinkedHashMap, TreeMap 차이점 정리
종류 | 순서 | 정렬 | 특징 |
---|---|---|---|
HashMap | 순서 없음 | 정렬 없음 | 가장 빠른 Map, 순서 신경 X |
LinkedHashMap | 입력된 순서 유지 | 정렬 없음 | 순서를 유지하면서 저장 |
TreeMap | 정렬된 순서 유지 | Key 기준 정렬 | 오름차순 정렬된 상태로 저장 |
🧸 비전공자 TIP
- HashMap → 순서 상관없이 빠르게 저장하고 싶을 때!
- LinkedHashMap → 데이터를 입력된 순서대로 유지하고 싶을 때!
- TreeMap → Key를 오름차순 정렬하고 싶을 때!
😊 마무리
Map
은 Key와 Value로 데이터를 저장할 때 아주 유용한 도구예요.
필요에 따라 HashMap, LinkedHashMap, TreeMap을 골라서 사용하면 돼요! ✨
2024.12.17 - [JAVA/JAVA 라이브러리] - [쉬운설명] JAVA SET 함수 정리(HashSet, LinkedHashSet,TreeSet 사용법과 차이점)
2024.12.17 - [JAVA/JAVA 라이브러리] - [쉬운설명] ArrayList, LinkedList, Vector 사용법과 차이점
반응형
SMALL
'JAVA > JAVA 라이브러리' 카테고리의 다른 글
[Java] List 사용법 완벽 정리: ArrayList 예제 코드와 특징 설명 (0) | 2024.12.18 |
---|---|
[Java] ArrayList, LinkedList, Vector 사용법과 차이점 한눈에 정리 (0) | 2024.12.18 |
[Java] HashSet, LinkedHashSet, TreeSet 차이점과 사용법 총정리 (0) | 2024.12.18 |
[Java] Scanner 라이브러리 사용법: 입력 받기 완벽 정리 (0) | 2024.12.18 |