IT/Algorithm | Coding Test

HashMap

iamhyeon 2025. 3. 17. 15:38

 

HashMap

- 자바의 컬렉션 프레임워크 중 하나로, 키와 값의 쌍으로 데이터를 저장하는 자료구조

- 해시 테이블을 기반으로 하며, 키를 해시 함수로 해시 코드로 변환하여 값을 저장하고 검색한다

- 키와 값의 쌍을 저장하며, 키는 중복될 수 없고, 값은 중복될 수 있다

- 동일한 키로 값을 저장하면 기존 값이 덮어쓰여진다

- 빠른 검색: 평균적으로 O(1)의 시간 복잡도로 데이터를 검색할 수 있다
- 키(Key)값을 통해서만 검색 가능

 

 

주요 메서드

put(K key, V value) 키와 값을 HashMap에 저장한다
get(Object key) 키에 해당하는 값을 반환한다.
키가 존재하지 않으면 null을 반환한다.
remove(Object key) 키에 해당하는 키-값 쌍을 제거한다
containsKey(Object key) HashMap에 키가 존재하는지 확인한다.
containsValue(Object value) HashMap에 값이 존재하는지 확인한다.
size() HashMap에 저장된 키-값 쌍의 개수를 반환한다
isEmpty() HashMap이 비어 있는지 확인한다
clear() HashMap의 모든 키-값 쌍을 제거한다

 

 

예)

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        // HashMap 생성
        HashMap<Integer, String> map = new HashMap<>();

        // 키와 값을 HashMap에 저장
        map.put(1, "Apple");
        map.put(2, "Banana");
        map.put(3, "Cherry");

        // 키를 사용하여 값 검색
        System.out.println("Key 1: " + map.get(1)); // 출력: Apple
        System.out.println("Key 2: " + map.get(2)); // 출력: Banana

        // 키가 존재하는지 확인
        System.out.println("Contains key 3: " + map.containsKey(3)); // 출력: true
        System.out.println("Contains key 4: " + map.containsKey(4)); // 출력: false

        // 값이 존재하는지 확인
        System.out.println("Contains value 'Cherry': " + map.containsValue("Cherry")); // 출력: true
        System.out.println("Contains value 'Date': " + map.containsValue("Date")); // 출력: false

        // 키-값 쌍 제거
        map.remove(2);
        System.out.println("Key 2 after removal: " + map.get(2)); // 출력: null

        // HashMap의 크기 확인
        System.out.println("Size of map: " + map.size()); // 출력: 2

        // HashMap이 비어 있는지 확인
        System.out.println("Is map empty: " + map.isEmpty()); // 출력: false

        // HashMap의 모든 키-값 쌍 제거
        map.clear();
        System.out.println("Size of map after clear: " + map.size()); // 출력: 0
    }
}

 

 

 

 

 

 

 

 

 

 


refer to

https://kadosholy.tistory.com/120

https://medium.com/@toimrank/collections-framework-c41014a2033e

 

반응형