ArrayList不具备线程安全性,vector具备
HashMap不能自动排序,HashTable不能,这个不太确定
这两个问题你可以参考java核心技术2
HashMap不能自动排序,HashTable不能,这个不太确定
这两个问题你可以参考java核心技术2
解决方案 »
- jsp乱码问题求解决
- SSH2使用hibernate对Log4j日志文件写入数据库
- Myeclipse servlet文件的映射路径如何找
- 100分 通过ssh远程执行命令与本地执行命令之间的区别是什么?为什么会造成输出阻塞?
- 现在运行本机正常的.java文件,如何放到linux服务器上运行?要什么要求
- 关于spring中的命名问题
- 问一下用过Hibernate Synchronizer的兄弟,我根据.hbm.xml生成类文件时总有下面的问题:
- 如何用java实现xml里数学公式的解析和计算?
- 两年半兼职工作经验的应届毕业生,熟悉JAVA(JSP/JavaBean/Servlet/EJB/Weblogic……)、ASP、PHP在深圳找工作应如何定位?
- 前后端大数据交互,分多次传递数据效率高还是直接流式传递数据比较好?
- 请问汉字和拼音是否有对应关系呀,怎么换算呀!
- 请各位上传你们面试J2EE程序员时笔试的题目,谢谢(紧急)
当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。
Hashtable和HashMap
它们的性能方面的比较类似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。
为什么
这些类就是这么设计的 呵
Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。
当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。
Hashtable和HashMap
它们的性能方面的比较类似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。
ArrayList和LinkedList
对于处理一列数据项,Java提供了两个类ArrayList和LinkedList,ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更象数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更象一个链表结构,所以,它们在性能上有很大的差别。
(1)从上面的分析可知,在ArrayList的前面或中间插入数据时,你必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能。
(2)而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。
(3)如果在编程中,1,2两种情形交替出现,这时,你可以考虑使用List这样的通用接口,而不用关心具体的实现,在具体的情形下,它的性能由具体的实现来保证。