在Java的集合类中,存在Hashtable与HashMap两个处理键值对的类。其中,Hashtable类是线程安全的(通过同步方法来实现),而HashMap类则不是。此外,两个类的另外一个区别是他们对null值的不同处理。在使用Hashtable时,如果传入的键的值为空,则会抛出NullPointerException。而HashMap中可以存放键为null的映射。
上图为Hashtable源码中对null的处理。
上图为HashMap源码对null的处理
在Java的集合类中,存在Hashtable与HashMap两个处理键值对的类。其中,Hashtable类是线程安全的(通过同步方法来实现),而HashMap类则不是。此外,两个类的另外一个区别是他们对null值的不同处理。在使用Hashtable时,如果传入的键的值为空,则会抛出NullPointerException。而HashMap中可以存放键为null的映射。
上图为Hashtable源码中对null的处理。
上图为HashMap源码对null的处理