JAVA/JAVA 라이브러리

[Java] HashMap, LinkedHashMap, TreeMap 비교와 실전 사용법

CodeCaine Explorer 2024. 12. 18. 09:13
728x90
반응형
SMALL

😊 HashMap, LinkedHashMap, TreeMap 사용법과 차이점 쉽게 이해하기

Map 은 자바에서 키(Key)와 값(Value)을 쌍으로 저장하는 데이터 구조예요.
쉽게 말하면 "이름표(Key)가 붙은 상자(Value)" 라고 생각하면 돼요.

예를 들어,

  • "이름(Key)" → "하영(Value)"
  • "나이(Key)" → "25(Value)"

🛠️ Map의 주요 특징

  1. Key: 중복을 허용하지 않아요!
  2. Value: 중복을 허용해요.
  3. 데이터를 빠르게 추가, 조회, 삭제할 수 있어요.

😊 Map의 종류와 차이점

  1. HashMap: 순서를 보장하지 않음 (가장 빠른 Map).
  2. LinkedHashMap: 입력된 순서를 유지해줌.
  3. 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

  1. HashMap → 순서 상관없이 빠르게 저장하고 싶을 때!
  2. LinkedHashMap → 데이터를 입력된 순서대로 유지하고 싶을 때!
  3. TreeMap → Key를 오름차순 정렬하고 싶을 때!

😊 마무리

Map은 Key와 Value로 데이터를 저장할 때 아주 유용한 도구예요.
필요에 따라 HashMap, LinkedHashMap, TreeMap을 골라서 사용하면 돼요! ✨

 

2024.12.17 - [JAVA/JAVA 라이브러리] - [쉬운설명] JAVA SET 함수 정리(HashSet, LinkedHashSet,TreeSet 사용법과 차이점)

 

[쉬운설명] JAVA SET 함수 정리(HashSet, LinkedHashSet,TreeSet 사용법과 차이점)

😊 HashSet, LinkedHashSet, TreeSet 사용법과 차이점 쉽게 이해하기Set 은 중복을 허용하지 않는 데이터 모음이에요.같은 데이터를 두 번 넣으려고 하면 한 번만 저장해줍니다! 😊하지만!HashSet: 순서를

alswnsghd1234.tistory.com

2024.12.17 - [JAVA/JAVA 라이브러리] - [쉬운설명] ArrayList, LinkedList, Vector 사용법과 차이점

 

[쉬운설명] ArrayList, LinkedList, Vector 사용법과 차이점

😊 ArrayList, LinkedList, Vector 차이점과 사용법 쉽게 이해하기자바에서 List 는 여러 데이터를 저장하고 관리할 때 쓰는 도구예요.여기서 가장 많이 사용되는 세 가지 종류는:ArrayListLinkedListVector이 세

alswnsghd1234.tistory.com

 

반응형
SMALL