黑马程序员技术交流社区
标题:
总结
[打印本页]
作者:
不要轻言放弃
时间:
2016-1-13 22:20
标题:
总结
HashMap和Hashtable的区别
都属于Map接口的类,实现了将惟一键映射到特定的值上。
一.历史原因:
Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:
Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。
四.效率:
Hashtable 比 HashMap 慢,因为它是同步的。
怎样使HashMap同步
HashMap可以通过Map m = Collections.synchronizedMap(hashMap)来达到同步的效果。
5
ArrayList和Vector的区别
ArrayList与Vector主要从二方面来说.
一.同步性:
Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的。
二.操作:
由于Vector支持多线程操作,所以在性能上就比不上ArrayList了。
三.数据增长:
ArrayList和Vector都有一个初始的容量大小,当存储进去它们里面的元素个数超出容量的时候,就需要增加ArrayList和Vector的存储空间,每次增加存储空间的时候不是只增加一个存储单元,是增加多个存储单元。
Vector默认增加原来的一倍,ArrayList默认增加原来的0.5倍。
Vector可以由我们自己来设置增长的大小,ArrayList没有提供相关的方法。
LinkedList与ArrayList有什么区别
两者都实现的是List接口,不同之处在于:
(1)、ArrayList是基于动态数组实现的,LinkedList是基于链表的数据结构。
(2)、get访问List内部任意元素时,ArrayList的性能要比LinkedList性能好。LinkedList中的get方法是要按照顺序从列表的一端开始检查,直到另一端
(3)、对于新增和删除操作LinkedList要强于ArrayList,因为ArrayList要移动数据
附加:
LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(…));
作者:
墨客110
时间:
2016-1-13 22:39
好东西,值得好好学习啊!!
作者:
许飞丶勿忘初心
时间:
2016-1-13 22:42
总结的不错
作者:
果然是神经病
时间:
2016-1-13 22:44
我也是学习的,谢谢大神
作者:
rushing
时间:
2016-1-13 22:53
我应该也多弄点类似的总结,对学习还是很有帮助的
作者:
Yaoluhao01
时间:
2016-1-13 22:55
总结的很好,谢谢楼主
作者:
意念痴心灬戒贪
时间:
2016-1-13 23:09
666666666666666666666
作者:
Julay0316
时间:
2016-1-13 23:12
很给力!
作者:
fury1994
时间:
2016-1-13 23:14
顶一个~~~~
作者:
wxw19910324
时间:
2016-1-14 00:14
赞到底 很给力 谢谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2