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
반응형
'IT > Algorithm | Coding Test' 카테고리의 다른 글
[프로그래머스 42586] [Java] 기능개발 (0) | 2025.04.08 |
---|---|
[프로그래머스 12914] [Java] 멀리뛰기 (2) | 2025.03.17 |
[프로그래머스 138476] [Java] 귤 고르기 (2) | 2025.03.17 |
[프로그래머스 12945] [Java] 피보나치 수 (0) | 2025.03.11 |
[프로그래머스 12911] [Java] 다음 큰 숫자 (0) | 2025.03.01 |