1. HashMap HashTable 是基于hash表实现的 ,而TreeMap是基于红黑树实现的。
2. HashMap是Map接口的实现类,而HashTable 是Dictionary的子类。
3. HashMap是非线程安全的,而HashTable是线程安全的,HashMap可以允许键和值为null而HashTable不能允许键和值为空。
4 . 在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,
也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()
方法来判断
可以用null为键去取值
5. HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。
6. 在TreeMap中映射是以关键字的字母顺序存储的,因此存储在TreeMap中的记录都是有序的;而在HashMap中映射中存储顺序一般依赖于编译器,不同的编译器则最后生成的存储顺序不同。
版权声明:本文为yaoyiyy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。