集合,不定期更新
2017-09-05 15:40
99 查看
各种集合区别
一 、Hashtable与HashMap
1、继承不同。public class Hashtable extends Dictionary implements Map
public class HashMap extends AbstractMap implements Map
2、Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了。
3、Hashtable中,key和value都不允许出现null值。
在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示 HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键, 而应该用containsKey()方法来判断。
4、两个遍历方式的内部实现上不同。
Hashtable、HashMap都使用了 Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式 。
5、哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。
6、Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数
一 、Hashtable与HashMap
1、继承不同。public class Hashtable extends Dictionary implements Map
public class HashMap extends AbstractMap implements Map
2、Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了。
3、Hashtable中,key和value都不允许出现null值。
在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示 HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键, 而应该用containsKey()方法来判断。
4、两个遍历方式的内部实现上不同。
Hashtable、HashMap都使用了 Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式 。
5、哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。
6、Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数
相关文章推荐
- easyui + webuploader 爬坑集合不定期更新中
- 小软件神器集合(不定期更新)
- Xcode编译问题集合(不定期更新)
- Android Studio问题&解决办法集合(不定期更新)
- 软件工程基础课-问题集合(不定期更新)
- Android 开源项目集合-不定期更新
- 华为荣耀四核官方各版本大集合,速来下载哦!(不定期更新)
- Yii2开发技巧集合[不定期更新]
- Mongodb数组操作$(update)、$占位符更新嵌套数组、嵌套文档集合
- COCOS2D-x移植常见错误(不定期更新)
- Objective-C编码规范[不定期更新细节]
- 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……
- Silverlight资源集合(持续更新)
- 前端开发小知识(兼容、排版等不定期更新)
- Linux-学习笔记【不定期更新ing】
- [moc062066]K4W kinect for Windows sdk 开发教程集合(动态更新)
- “当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand”错误解决
- Windows高效率软件推荐(不定期更新)
- MongoDB学习笔记~自己封装的Curd操作(查询集合对象属性,更新集合对象)
- 通达OA 2015界面个性化随笔,不定期更新