1. HashMap은 key와 value에 null을 허용 / Hashtable 은 null 을 허용하지 않음.
2. HashMap은 thread-safe 하지 않고 (not synchronized) Hashtable은 그렇다 (synchronized).
HashMap 자체는 not synchronized하기 때문에 다음과 같이 Collection.synchronizedMap을 이용해서 synchronized하게 만들 수 있다.
Map m = Collections.synchronizedMap(new HashMap(...));
3. HashMap은 bucket에 element들을 흩어뿌리기 때문에 get/put과 같은 기본 동작들이 동일한 시간 (constant-time performance) 에 수행된다.
출처 : [Java] HashMap을 쓸 것인가 Hashtable을 쓸 것인가??
Vector 와 ArrayList 의 차이도 synchronized 인데, HashMap 과 HashTable 도 그렇다.
다만 Collection.synchronizedArray 나 synchronizedMap 해서 얻어진 객체가 Vector 나 HashTable 보다 빠른지 느린지를 모르겠다.
이건 시간이 정말 많이 날 때 찾아보거나 실험해볼 필요가 있을 듯 하다. 새로운 방법이 더 빠르다면 Vector 나 HashTable 은 아예 쓸 일이 없을테니...
'Dev.Programming > Lang.Java' 카테고리의 다른 글
| HashMap vs HashTable (0) | 2010/04/22 |
|---|---|
| Java Memory Model / Garbage Collection (2) | 2010/04/22 |
| Java 5.0 / 6.0 변경 사항 (0) | 2010/04/20 |
| JNI 를 통해 사용하는 VC++ 라이브러리를 디버깅하기 (0) | 2008/09/19 |
| 순수 자바를 이용하여 JVM을 죽게 하는 프로그램을 어떻게 짤까? (8) | 2008/08/26 |
| Thread Pool 을 별다른 설정 없이 간단하게 사용하는 방법 (0) | 2008/08/11 |


