According to the java tutorial, since the introduction of JCF and the Map interface, Hashtables are only there for legacy reasons. I'd stick to the synchronized hashmap, even if it's has worse performance (which I don't think it does). Also, the code between the two classes is almost identical - The only difference being Hashtables have synchronized methods, where are synchronized ...