`
yutinglong
  • 浏览: 66527 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Vectory与ArrayList的区别

    博客分类:
  • J2SE
阅读更多

     Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。

VectorArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

       可能很多人都不知道ArrayList,但是肯定知道Vector,因为VectorArrayList早,所以用的

比较多。但是在java1.2之后的Collection框架中,Vector已经被淘汰了,因为要保持兼容型,

这个类会一直存在,但是确被建议不要使用,这就是软件的兼容性。

    对于不熟悉Vector的人那最好了,直接用ArrayList就好了,不过习惯使用Vector的最好也转到ArrayList(虽然Vector可能永远存在JDK),但是我们没有理由放弃ArrayList使用Vector

    public class Vector extends AbstractList implements

                                                   List,  RandomAccess, Cloneable, java.io.Serializable

    可以看出和ArrayList的声明是一样的,这里不考虑它的实现,来看看主要区别:

1、Vector有而ArrayList没有的方法:addElementcopyIntoelementAtelementsfirstElementfirstElement等等,这里就不一一列举,基本上都是多余的方法,而且还使用了Enumeration(一起被淘汰的)

2、Vector的实现相对ArrayList稍微复杂,Vector功能并不比ArrayList强大,代码量确是两倍。

3、Vector中的大部分方法都是同步方法,不要认为这是它的优点!同步是要付出代价的,要不然在单例模式中很多人都希望用Double-Check Lock(虽然不可行)。因为方法都经过同步,效率自然下降不少。

分享到:
评论

相关推荐

    《Vector、ArrayList、List使用深入剖析》-JAVA中文站(www_java-cn_com).htm

    《Vector、ArrayList、List使用深入剖析》-JAVA中文站(www_java-cn_com).htm

    vectory:JavaScript矢量数学库

    vectory是用ES6编写JavaScript向量数学库。 安装 npm install vectory-lib 使用向量,一些例子 首先,您需要加载vectory。 请注意,vectory只是lib的名称,但JavaScript类称为Vector,模块称为vector。 let Vector ...

    [C++][经验总结]vectory迭代器(iterator)失效

    然而,一个常见的陷阱是,当我们对`vector`进行某些操作时,其迭代器可能会失效,这正是 "[C++][经验总结]vectory迭代器(iterator)失效" 这一主题的核心所在。理解这个问题对于编写稳定且高效的C++代码至关重要。 ...

    丹佛斯VLT系列变频器检修资料.pdf

    在实际应用中,变频器可能会遇到各种故障情况,为了帮助用户快速定位并解决问题,本部分将详细介绍丹佛斯VLT系列变频器的故障排除方法,主要包括故障警告与报警表、故障说明以及排除方法。 首先,VLT变频器的故障...

    vectory:后台管理系统模版-vue

    向量这是一个管理项目,是Vue和ant-design-vue框架的基础。项目设置npm install编译和热重装以进行开发npm run serve编译并最小化生产npm run build运行测试npm run test整理和修复文件npm run lint自定义配置请参阅...

    易语言源码易语言求向量长度源码.rar

    例如,如果向量的x、y、z分量分别存储在变量`vectorX`、`vectorY`、`vectorZ`中,我们可以按照以下步骤编写源码来计算向量长度: 1. 计算平方: ```易语言 .积1 = vectorX * vectorX .积2 = vectorY * vectorY ...

    漂亮时钟java完整代码.pdf

    * 使用vectorX和vectorY方法来计算时钟的指针位置 六、Java编程基础知识 * 使用import语句来导入Java包 * 使用public关键字来定义公共方法 * 使用private关键字来定义私有变量 * 使用try-catch语句来捕捉异常 七...

    单相逆变器矢量控制Matlab仿真

    基于单相H桥式逆变器拓扑,搭建了一种基于单相矢量控制的调制技术,供大家参考。

Global site tag (gtag.js) - Google Analytics