728x90
반응형
SMALL
HashMap과 Hashtable 클래스의 차이점
Thread-safe 여부
- Hashtable은
Thread-safe
하고, HashMap은Thread-safe
하지 않다는 특징을 가지고 있습니다. 그렇기에 멀티스레드 환경이 아니라면 Hashtable은 HashMap 보다 성능이 떨어진다는 단점을 가지고 있습니다.
Null 값 허용 여부
- Hashtable은 key에 null을 허용하지 않지만, HashMap은 key에 null을 허용합니다.
Enumeration 여부
Hashtable은 not fail-fast Enumeration을 제공하지만, HashMap은 Enumeration을 제공하지 않습니다.
HashMap은 보조해시를 사용하기 때문에 보조 해시 함수를 사용하지 않는 Hashtable에 비하여 해시 충돌(hash collision)이 덜 발생할 수 있어 상대적으로 성능상 이점이 있습니다.
최근까지 Hashtable은 구현에 거의 변화가 없지만, HashMap은 현재까지도 지속적으로 개선되고 있습니다.
동시성에서의 HashTable과 ConcurrentHashTable
기본적으로 insert 할때는 o(1) 이지만 get 할때는 내부적 equals 비교로 인해서 o(N)의 성능이다
HashTable
은 read,write 동시접근이 안된다. 동시접근시 ConcurrentModification Exception
HashTable 문제를 해결하고자ConcurrentHashTable
등장 ConcurrentHashTable
은 동시접근(동시성)을 보장
728x90
반응형
LIST
'Language > 자바' 카테고리의 다른 글
빅엔디안, 리틀엔디안이란? (0) | 2024.06.11 |
---|---|
volatile 이란? (0) | 2024.06.09 |
JAVA의 WatchService에서 주의할점 (0) | 2023.08.10 |
Java 8 date/time type `java.time.LocalDateTime` not supported by default 문제 해결 (0) | 2022.11.10 |
java.util.ConcurrentModificationException 예외 (0) | 2022.08.16 |