728x90
스레드 동기화가 필요하지 않은 경우 일반적으로 HashMap이 HashTable보다 선호됩니다.
HashMap | Hashtable |
HashMap은 동기화가 안됩니다. | Hashtable은 동기화가 됩니다. |
HashMap은 스레드에 안전하지 못합니다. | Hashtable은 스레드에 안전합니다. |
HashMap은 적절한 동기화 코드가 없다면 많은 스레드간 공유가 불가능합니다. | Hashtable은 많은 스레드에 공유 가능합니다. |
HashMap은 하나의 null 키 값과 다수의 null 벨류 값을 가질 수 있습니다. | Hashtable은 null 사용이 불가능합니다. |
HashMap은 JDK 1.2에 추가된 클래스입니다. | Hashtable은 오래된(래거시) 클래스입니다. |
HashMap은 빠릅니다. | Hashtable은 느립니다. |
HashMap은 아래 코드로 동기화할 수 있습니다. Map m = Collections.synchronizedMap(hashMap); |
Hashtable은 내부적으로 동기화가 진행되며 동기화할 수 없습니다. |
HashMap은 반복자 Iterator에 의해 순회됩니다. | 해시 테이블은 열거 자와 반복자가 통과합니다. |
HashMap의 반복자 Iterator 는 Iterator의 remove() 이외의 코드로 기존 Collection이 수정될 경우 예외가 발생합니다. | Hashtable의 열거자 Enumerator 는 실패하지 않습니다. |
HashMap은 AbstractMap 클래스를 상속합니다. | Hashtable은 Dictionary 클래스를 상속합니다. |
참고 사이트(EN) : https://www.javatpoint.com/difference-between-hashmap-and-hashtable
728x90
'Study Note > Java' 카테고리의 다른 글
JAVA_ JAR, WAR, EAR 차이점 (0) | 2019.09.12 |
---|---|
JAVA_ Fail-Safe Iterator vs Fail-Fast Iterator (0) | 2019.09.09 |
JAVA_ cmd 로 java 파일 UTF-8 로 인코딩 후 컴파일하기 (0) | 2018.11.08 |
JAVA_ Test154 & Test155_ 컬렉션 프레임워크(Collection Framework) / Vector 클래스 접근방법 (0) | 2018.06.17 |
JAVA_ Test153_ 컬렉션 프레임워크(Collection Framework) / Vector(벡터) 클래스 (0) | 2018.06.17 |
댓글