자료구조

LinkedHashMap - Java

Stitchhhh 2025. 5. 1. 12:36

LinkedHashMap

  • LinkedHashMap은 HashMap의 기능을 그대로 유지하면서, 입력 순서를 기억하는 Map입니다.
  • 내부적으로 해시 테이블 + 이중 연결 리스트를 사용하여, 순서를 보장합니다.

주요 특징

자료구조 HashMap + 이중 연결 리스트
정렬 여부
삽입 순서 유지
null 허용 ✅ (Key 1개, Value 다수 허용)
시간 복잡도 평균 O(1)
특징 순서 + 빠른 접근이 필요한 경우 (ex. 캐시 구현)

대표 메서드

package structure.map.linkedhashmap;

import java.util.LinkedHashMap;

public class LinkedHashMapClass {

    private final LinkedHashMap<Integer, String> linkedHashMap;

    public LinkedHashMapClass(LinkedHashMap<Integer, String> linkedHashMap) {
        this.linkedHashMap = linkedHashMap;
    }

    // 맵에 키-값 쌍을 추가하거나 업데이트합니다.
    // 시간 복잡도: O(1)
    // 예외 발생: NullPointerException - linkedHashMap이 null인 경우
    public LinkedHashMap<Integer, String> put(int key, String value) {
        this.linkedHashMap.put(key, value);
        return this.linkedHashMap;
    }

    // 지정된 키에 해당하는 값을 반환합니다.
    // 시간 복잡도: O(1)
    // 예외 발생: NullPointerException - linkedHashMap이 null인 경우
    public String get(int key) {
        return this.linkedHashMap.get(key);
    }

    // 지정된 키에 해당하는 항목을 제거합니다.
    // 시간 복잡도: O(1)
    // 예외 발생: NullPointerException - linkedHashMap이 null인 경우
    public LinkedHashMap<Integer, String> remove(int key) {
        this.linkedHashMap.remove(key);
        return this.linkedHashMap;
    }

    // 맵에 지정된 키가 포함되어 있는지 확인합니다.
    // 시간 복잡도: O(1)
    // 예외 발생: NullPointerException - linkedHashMap이 null인 경우
    public boolean containsKey(int key) {
        return this.linkedHashMap.containsKey(key);
    }

    // 맵에 지정된 값이 포함되어 있는지 확인합니다.
    // 시간 복잡도: O(n)
    // 예외 발생: NullPointerException - linkedHashMap이 null인 경우
    public boolean containsValue(String value) {
        return this.linkedHashMap.containsValue(value);
    }

    // 맵의 모든 요소를 제거합니다.
    // 시간 복잡도: O(1)
    // 예외 발생: NullPointerException - linkedHashMap이 null인 경우
    public void clear() {
        this.linkedHashMap.clear();
    }

    // 맵이 비어 있는지 확인합니다.
    // 시간 복잡도: O(1)
    // 예외 발생: NullPointerException - linkedHashMap이 null인 경우
    public boolean isEmpty() {
        return this.linkedHashMap.isEmpty();
    }

    // 맵의 요소 개수를 반환합니다.
    // 시간 복잡도: O(1)
    // 예외 발생: NullPointerException - linkedHashMap이 null인 경우
    public int size() {
        return this.linkedHashMap.size();
    }
}

'자료구조' 카테고리의 다른 글

HashMap vs TreeMap vs LinkedHashMap  (16) 2025.05.01
TreeMap - Java  (4) 2025.05.01
HashMap - Java  (2) 2025.05.01
TreeSet vs HashSet vs LinkedHashSet  (10) 2025.04.30
LinkedHashSet - Java  (0) 2025.04.30