Hashmap(해쉬맵)
- Map 인터페이스를 상속받아 만들어진 클래스로 Map의 특성을 그대로 갖고있다.
- Map은 Key & Value 한 쌍으로 구성된 Entry 객체를 저장하는 자료구조이다.
- 키와 값은 모두 객체이다. 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없다.
- 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치된다.
- 실제 데이터를 저장시킬 때는 Node 타입의 배열에 저장된다. HashMap에 선언된 Node 타입 변수 및 클래스이다.
Hashmap 시간복잡도
접근, 탐색 , 추가 , 삭제 : O(1)
연산 | |
put(K key, V value) | key와 value를 저장 |
remove(Object key) | key와 일치하는 기존 데이터( key와 value)를 삭제 |
replace(K key, V value) | key와 일치하는 기존 데이터의 value를 변경 |
containsKey(Object key) | key와 일치하는 데이터가 있는지 여부를 반환 (있으면 true) |
containsValue(Object value) | value가 일치하는 데이터가 있는지 여부를 반환 (있으면 true) |
size( ) | key-value 맵핑 데이터의 개수를 반환 |
get(Object key) | key와 맵핑된 value값을 반환 |
getOrDefault(Object key, V defaultValue) | key와 맵핑된 value값을 반환하고 없으면 defaultValue값을 반환 |
//해쉬맵 사용예제
import java.util.HashMap;
public class HashMap {
public static void main(String[] args) {
HashMap<String, String> hashmap = new HashMap<String, String>();
hashmap.put("1", "Hello");
hashmap.put("2", "World");
System.out.print(hashmap);
}
}
장점
- 키-값(key-value) 쌍으로 데이터를 저장하므로, 탐색 속도가 빠르다.
- 내부 구조는 배열과 연결 리스트로 구성되어 있어 데이터의 수에 따라 자동으로 크기를 조절하여 메모리 공간을 효율적으로 사용한다.
단점
- 해시맵 내부 구조는 연결 리스트에 대한 포인터를 유지하기 때문에, 메모리 사용량이 크게 증가할 수 있다.
- 저장이 많이 일어나면 속도가 느려지고 해시 함수 충돌이 발생할 경우 성능이 저하된다. (이를 해결하기 위해 체이닝(Chaining)이나 오픈 어드레싱(Open Addressing) 등의 기법을 사용)
관련link
https://devlog-wjdrbs96.tistory.com/241
[Java] HashMap이란 무엇인가?
HashMap이란? HashMap은 Map 인터페이스를 구현하고 있는 대표적인 클래스입니다. 그리고 Map의 구조인 key-value쌍으로 구성되어 있습니다. 그리고 Map의 대표적인 특징은 하나의 key는 정확히 하나의 valu
devlog-wjdrbs96.tistory.com
https://seasome1.com/%EC%9E%90%EB%B0%94-hashmap/
[Java] 자바 HashMap(해시 맵) 사용법, 메소드, 객체생성
자바 HashMap에 대해서 궁금하신가요?? 자바 HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. 그럼 아래에서 HashMap이란 무엇이고 HashMap의 주요기능, 메서드 및 사용법에 대해서 알아봅
seasome1.com
https://velog.io/@kms403/%ED%95%B4%EC%8B%9C%EB%A7%B5HashMap
[자료구조] 해시맵(HashMap)
선형 자료구조 해시맵(HashMap)에 대해 알아보도록 하자.
velog.io
https://tlatmsrud.tistory.com/147
[자료구조] Java HashMap 자료구조 / 동작과정 / 장단점
필자의 주관적인 생각과 이해를 바탕으로 작성된 글입니다. 잘못된 부분이 있거나 있다면 댓글로 피드백 부탁드립니다! 개요 HashMap은 Key, Value 데이터쌍을 저장하는 자료구조로 익히 알고있다.
tlatmsrud.tistory.com
https://kadosholy.tistory.com/120
[Java] 자바 - HashMap 사용방법 (개념, 특징, 메소드 및 예제)
자바 - HashMap 사용방법 (개념, 특징, 메소드 및 예제) 컬렉션의 하나로 데이터를 키(Key)와 밸류(Value)의 짝으로 저장하는 HashMap에 대해서 알아보도록 하겠습니다. 목차 HashMap이란? HashMap 생성방법 Ha
kadosholy.tistory.com
'Study for Backend > Data Structure' 카테고리의 다른 글
[Data Structure 기초] Deque (0) | 2024.02.23 |
---|---|
[Data Structure 기초] Linked List (0) | 2024.02.23 |
[Data Structure 기초] Array (0) | 2024.02.21 |
[Data Structure기초] Queue (2) | 2024.02.20 |
[Data Structure기초] Stack (0) | 2024.02.19 |