본문 바로가기

Programming/Java

[Java] Hashtable vs Map

728x90

Hashtable과 Map은 모두 키와 값의 쌍으로 데이터를 저장하는 자료 구조입니다. 하지만 두 자료 구조는 몇 가지 차이점이 있습니다.

 

Hashtable과 Map의 가장 큰 차이점은 동기화(synchronization) 여부입니다. Hashtable은 스레드 안전(thread-safe)한 자료 구조로, 동시에 여러 스레드에서 사용해도 안전합니다. 따라서, 멀티스레드 환경에서 안전하게 데이터를 처리해야 하는 경우에는 Hashtable을 사용하는 것이 좋습니다. 반면에 Map은 스레드 안전하지 않습니다. 멀티스레드 환경에서 안전하게 데이터를 처리하기 위해서는 ConcurrentHashMap 등의 스레드 안전한 자료 구조를 사용해야 합니다.

 

또한, Hashtable은 초기 용량(capacity)과 로드 팩터(load factor)를 지정할 수 있으며, 기본 값은 각각 11과 0.75입니다. 반면에 Map은 초기 용량과 로드 팩터를 지정할 수 없습니다.

 

Hashtable Map 대부분의 기능이 서로 유사하며, 상황에 따라 사용하는 것이 좋은 자료 구조가 달라집니다. 일반적으로, 멀티스레드 환경에서 안전하게 데이터를 처리해야 하는 경우에는 Hashtable 사용하는 것이 좋습니다. 반면에 멀티스레드 환경이 아니거나, 스레드 안전성이 보장되는 다른 자료 구조를 사용하고자 하는 경우에는 Map 사용하는 것이 좋습니다. 또한, Hashtable Map보다 조금 느릴 있으므로, 속도가 중요한 경우에는 Map 사용하는 것이 좋습니다.

728x90

'Programming > Java' 카테고리의 다른 글

[Java] clone 함수  (0) 2023.02.27
[Java] 문자열 거꾸로 출력하기  (0) 2023.02.26
[Java] Hashtable  (0) 2023.02.26
[Java] 다형성  (0) 2023.02.24
[Java] 팩토리얼 계산하는 코드 만들기  (0) 2023.02.23