HashTable:
1.线程安全。
2.key不可以为null。
3.value不可以为null,抛出NullPointerException()。
4.遍历使用Enumeration。
HashMap:
1.线程不安全。
2.key、value可以为null。
3.遍历使用Iterator。
HashSet:
1、HashSet基于HashMap实现,无容量限制。
2、HashSet是非线程安全的。
3、HashSet不保证有序。
碎碎念:
1.HashTable有一个contains方法,容易引起混淆,HashMap中去掉了。不过两个类都有containsKey和containsValue方法。
2.Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
3.由于HashMap线程不安全,所以效率可能高于HashTable。(自己没有测试过)