java.util.Hashtable<k,v>集合 implements Map<k,v>接口
特点:(也是与其他集合的不同点)
1、是一个线程安全的集合,单线程的集合,效率低下
2、不允许存储null值,null键Hashtable集合效率低下,已经被HashMap(允许存储null值,null键)给取代了,但是Hashtable子类Properties(重点掌握)集合依然活跃在历史的舞台
两者的比较测试代码如下:
import java.util.HashMap;
import java.util.Hashtable;
public class Demo01Hashtbale {
public static void main(String[] args) {
//创建Hashmap集合对象
HashMap<String,String> map = new HashMap<>();
map.put("a",null);
map.put(null,"b");
map.put(null,null);
System.out.println(map); //key不允许重复所以输出结果为: {null=null, a=null},
//第三条语句将第二条覆盖了
//创建Hashtable集合对象
Hashtable<String,String> table = new Hashtable<>();
//table.put("a",null); //NullPointerException 空指针异常
//table.put(null,"b"); //NullPointerException 空指针异常
table.put(null,null); //NullPointerException 空指针异常
}
}
还需要注意的是,Hashtable
没有使用 驼峰命名法
,是因为 Hashtable
是在 Java 1.0
的时候创建的,而集合的统一规范命名是在后来的 Java 2.0
开始约定的,当时其他一部分集合类的发布构成了新的集合框架。