정리하고기록하자

HashTable VS HashMap 본문

Data Structure

HashTable VS HashMap

정리하고기록하자 2022. 5. 22. 01:33
반응형

HashTable 과 HashMap 

자바에서 제공하는 HashMap과 HashTable 은 Map 인터페이스를 상속받아 구현되고

Key, Value 로 관리하는 자료 구조이다.

특징은 Key가 데이터를 추출할 때 구분자로 활용하는 방식을 취하는데 이는 리스트 인터페이스와 같은 자료구조보다 탐색에 있어 더 높은 효율을 기대 할 수 있다.

 


HashTable 과 HashMap 의 차이점

1. 동기화 

HashMap의 경우 동기화를 지원하지 않는다.반면 *멀티 스레드 환경에서 HashTable은 동기화를 지원하지 않기 때문에 실행 환경에 따라 구분하여 사용하면 된다.

속도 면에서 HashTable은 동기화 처리라는 비용 때문에 HashMap에 비해 더 느리다.

 

* 동기화 : 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것을 의미한다.

*멀티 스레드 :

일반적으로 하나의 프로세스는 하나의 스레드를 가지고 작업을 수행하게 됩니다.

하지만 멀티 스레드란 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미한다. 멀티 프로세스는 여러 개의 CPU를 사용하여 여러 프로세스를 동시에 수행하는 것을 의미한다.

 

2. Null 여부

HashMap에서는 Null을 허용한다.

HashTable에서는 Null을 허용하지 않는다.

 

3. Enumeration(열거) 여부

HashMap에서는 Enumeration를 제공 하지 않는다.

HashTable에서는 Not Fail-Fast Enumeration를 제공 한다

 

4. 보조해시함수

보조해시함수의 역할은 Key의 해시값을 변경해 해시 충돌 가능성을 줄여주는 역할을 한다.

HashMap은 보조해시를 사용하기 때문에 

HashTable에 비해서 해시 충돌이 덜 발생한다.

 

 

[자바/java]Iterator 와 Enumeration 쉽게 이해하기 편.

Iterator와 Enumeration 컬렉션(collection) 인터페이스를 사용하는 클래스의 데이터를 순환해서 사용하는 경우 클래스에서 제공하는 size()를 사용해서 for문으로 데이터를 가져오는 방법도 있지만 순환

tiboy.tistory.com

 

 

HashMap vs HashTable vs ConcurrentHashMap

이미지 출처: Top 35 Data Structure & Algorithms Interview Questions and Answers in 2021 각 자료구조는 필요에 따라 선택되고 활용된다. 인터페이스의 구현체로는 , , 등이 있다. Map 인터페이스를 구현하면, 형태

tecoble.techcourse.co.kr


 

 

반응형

'Data Structure' 카테고리의 다른 글

그래프 ( Graph )  (0) 2022.05.28
HashMap  (0) 2022.05.21
해쉬 테이블 ( HashTable )  (1) 2022.04.16
트리 (Tree)  (0) 2022.04.07
큐(Queue)  (2) 2022.04.02