Map 인터페이스 - 컬렉션

Kim taegwan·2026년 4월 1일

List, Set 과 완전히 다른 구조

지금까지 배운 List 와 Set 은 값 하나씩 저장했습니다.

List : [철수, 영희, 민준]
Set  : {철수, 영희, 민준}

Map 은 다릅니다. 키(Key) 와 값(Value) 을 쌍으로 저장합니다.

Map : {철수 → 90점, 영희 → 85점, 민준 → 92점}
       ↑ 키       ↑ 값

사전을 떠올리면 이해하기 쉽습니다.

사전 : "apple" → "사과"
       "banana" → "바나나"
       "cherry" → "체리"

Map 도 같은 구조 : 키(단어) → 값(뜻)

Collection (인터페이스)
|
├── List (인터페이스)
│ ├── ArrayList
│ ├── LinkedList
│ ├── Vector
│ └── ...

├── Set (인터페이스)
│ ├── HashSet
│ ├── LinkedHashSet
│ ├── TreeSet
│ └── ...

Map (인터페이스) ← Collection 과 별개로 존재
├── HashMap
├── LinkedHashMap
└── TreeMap

예시:
map.put("철수", 90);
map.put("영희", 90); // 값이 같아도 키가 다르면 OK
map.put("철수", 95); // 키가 같으면 값이 덮어씌워짐 → 철수 = 95

package collection.map;

import java.util.HashMap;
import java.util.Map;


public class MapEx {

    public static void main(String[] args) {

        // 학생이름, 점수
        Map<String, Integer> scores = new HashMap<>();

        // 추가 (put)
        scores.put("철수", 90);
        scores.put("영희", 85);
        scores.put("민준", 92);

        // 조회 (get)
        System.out.println(scores.get("철수"));  // 90 - 키값으로 접근하면 value 가 나옴
        System.out.println(scores.get("없는값")); // null

        // 포함 여부
        System.out.println(scores.containsKey("영희")); // 키 값이 존재한다면 true
        System.out.println(scores.containsValue(85)); // 있는 값 true
        System.out.println(scores.containsValue(10)); // 없는 값 false

        // 삭제
        scores.remove("민준");

        // 크기
        scores.size();

        // put() 은 덮어씌우기도 합니다.
        scores.put("철수", 0); // 덮어 쓰기 됨
        
        System.out.println(">>>" + scores.keySet());
        System.out.println(scores);

        for (String name : scores.keySet()) {
            System.out.println(name  + " :  " + scores.get(name)  + " 점수");
        }


    } // end of main

} // end of class

map 인터페이스를 어떻게 쓰는지 보여주고 있다.

핵심 요약

Map 인터페이스
  키(Key) 와 값(Value) 을 쌍으로 저장
  키는 중복 불가, 값은 중복 허용
  키로 값을 빠르게 찾을 수 있음

HashMap 주요 메서드
  put(키, 값)        : 추가 또는 덮어쓰기
  get(키)            : 키로 값 조회, 없으면 null
  remove(키)         : 삭제
  containsKey(키)    : 키 존재 여부
  containsValue(값)  : 값 존재 여부
  keySet()           : 전체 키 목록
  size()             : 저장된 쌍의 수

언제 쓰나요?
  "이름으로 성적을 찾고 싶다"
  "단어로 뜻을 찾고 싶다"
  키로 값을 빠르게 찾아야 하는 모든 상황

0개의 댓글