Map

말하는 감자·2024년 12월 24일

자바 중급

목록 보기
10/21
post-thumbnail

개념

특징

  1. 키와 값의 쌍
    :각 요소는 하나의 key와 이에 매핑되는 하나의 value로 구성된다. key는 고유해야 하며, 동일한 키에 대해 다른 값을 저장x
  2. 순서
    :Map의 요소들은 특정한 순서를 보장하지 않는 경우가 많음. 그러나 하위 클래스에 따라 순서가 달라질 수 있다.
  3. 빠른 접근: 키를 사용하여 값에 빠르게 접근 가능. 일반적으로 O(1)의 시간 복잡도를 가짐

주요 메서드

  • put(key,value): 키와 값을 추가
  • get(key): 지정된 key의 value 값 반환. 존재하지 않으면 null
  • remove(key): 지정된 key에 대한 엔트리 삭제
  • containsKey(key): 지정된 키가 존재하는지 확인
  • keySet(): 모든 키를 포함하는 Set을 반환
  • values(): 모든 값을 포함하는 Collection을 반환
  • entrySet():모든 키-값 쌍을 포함하는 Set을 반환
Set<Map.Entry<String, Integer>> entries = map.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

주요 구현 클래스

  • HashMap
    : 해시 테이블을 기반으로 하는 구현. 빠른 검색속도와 효율적인 메모리 사용 제공. 키의 순서 보장x
  • LinkedHashMap
    : HashMap의 기능을 확장하여 요소의 삽입 순서 유지
  • TreeMap
    :이진 검색 트리를 기반으로 하며, 키의 자연 순서 또는 지정된 비교기에 따라 정렬된 상태로 데이터를 저장

Code 예시

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapExam {
    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
        map.put("001","kim");
        map.put("002","lee");
        map.put("003","kang");

        map.put("003","kim");   // 동일 키값이 입력되면 덮어씀
        System.out.println(map.size());
        System.out.println(map.get("001")); //key값으로 value값을 반환

        Set<String> keys=map.keySet();	// map객체의 모든 key를 모함하는 Set 생성
        Iterator<String> iter =keys.iterator();	// Set의 요소들에 순차적 접근을 위해 Iterator 객체 생성
        while(iter.hasNext()){	// 다음값이 있으면
            String key= iter.next();	// 현재 키 값 반환
            String value=map.get(key);	// 키값을 통해 map 객체의 value 반환
            System.out.println(key+":"+value);
        }
    }
}

결과

profile
주니어개발자(?)

0개의 댓글