HashMap和HashTable的区别
首先声明一点,HashTable其实是一个过时的集合类,它相当于Java API中的老古董了,那么它到底和HashMap这个小鲜肉有什么区别呢?我们从线程安全性、同步以及速度这三方面去比较它:
首先两者都实现了Map接口,HashMap是非同步的(syncronized),所以HashMap的线程安全性要低于HashTable,速度上比HashTable要占优势,HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,可能是 HashMap中没有该键,也可能使该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键, 而应该用containsKey()方法来判断;而HashTable的key和value都不允许出现null值,且HashTable是同步的,所以要比HashMap安全。
还没有评论,来说两句吧...