2012-05-01 1 views
3

Java의 java.util.Hashtable의 기능은 java.util.HashMap과 같습니다. 가장 큰 차이점은 Hashtable은 스레드로부터 안전하며 동기화되었으며 HashMap은 동기화되지 않습니다. JDK5 현재, 우리는 멀티 스레드 환경에서 사용될 수있는 ConcurrentHashMap을 가지고 있습니다. Hashtable보다 성능이 좋습니다. 앞으로 Hashtable을 사용할 이유가 있습니까?ConcurrentHashMap을 가지고 있으므로 Hashtable이 필요합니까?

답변

5

Hashtable이 여전히 JDK에있는 유일한 이유입니다.

Hashtable에 대한 또 다른 대안은 Collections.synchronziedMap입니다.

+0

ConcurrentHashMap의 성능이 synchronizedMap보다 우수하므로 synchronizedMap을 사용해야하는 이유가 있습니까? – Jacky

+1

@Jacky 아닙니다. 같은 이유가 적용됩니다. * 거기에 머무를 것입니다. Sun/oracle은 하위 호환성을 상당히 심각하게 받아 들였고 기본적으로 JDK에서 아무 것도 제거하지 않습니다. JDK7의 메소드는 여전히 잘못 입력되어 있습니다. 1.0 및 1.1에서 이름이 바뀜) – Voo

+0

감사합니다. – Jacky

0

use HashTable 인 기존 인터페이스가 많이 있습니다. 대부분의 경우, 모든 경우가 아니라면 호환성을 없애고 교체 할 수 없습니다.