`
cdwzwd
  • 浏览: 122159 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Vector真的不值得使用吗?

 
阅读更多
在thinking in java 中发现 不推荐使用Vector,仔细研究了一下发现事实并非如此。
1,vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用arraylist效率比较高。

2,如果集合中的元素的数目大于目前集合数组的长度时,vector增长率为目前数组长度的100%,而arraylist增长率为目前数组长度的50%.如过在集合中使用数据量比较大的数据,用vector有一定的优势。

3,如果查找一个指定位置的数据,vector和arraylist使用的时间是相同的,都是O(1),这个时候使用vector和arraylist都可以。而如果移动一个指定位置的数据花费的时间为O(n-i)n为总长度,这个时候就应该考虑到使用linklist,因为它移动一个指定位置的数据所花费的时间为0(1),而查询一个指定位置的数据时花费的时间为0(i)。

主要能过以下方面考虑:
API;同步处理;数据增长性;使用模式;

分享到:
评论

相关推荐

    VectorMagic.rar

    图形是量化的软件很多,用过AlgoLab Photo Vector,以及著名的r2v32。相较而言,这款vectorMagic更为强大,自动曲线平滑,还能筛选颜色输出。支持多种格式,eps,ai,dxf,...重点还是免费的,值得图形处理人士的拥有。

    演示Sequence容器vector

    例如,`vector`的动态扩展策略、`list`的节点管理,以及`deque`的小块数组设计,都是值得研究的部分。 总结,`vector`、`list`和`deque`各有优缺点,适用于不同的场景。理解它们的特性并根据实际需求选择合适的容器...

    Finite-Dimensional Vector Spaces - P. Halmos (Springer, 1987)

    在学习代数学之余,值得一看的代数学书籍。里面介绍了更为丰富的代数学概念和结论。

    C++编的大数年四则运算

    负数可以通过在大数前添加符号位来表示,溢出则不会发生,因为我们使用的是`vector`或`string`,它们的长度理论上可以无限增长。然而,精度问题依然存在,特别是在进行除法运算时,可能会需要决定何时停止计算小数...

    C++/C编程规范

    C++领域20年集大成之作  两位世界专家联袂巨献  适合所有层次C++程序员 ... 为什么应该使用STL vector和string代替数组?  如何选择正确的STL搜索或排序算法?  为了保证代码的类型安全,应该遵从哪些规则?

    高质量 C++/C 编程指南

    良好的编程规范可以改善软件质量,缩短上市时间,提升团队效率,简化维护工作。...,  为什么应该使用STL vector和string代替数组?,  如何选择正确的STL搜索算法?,  为了保证代码的类型安全,应该遵从哪些规则?

    C++编程规范

    良好的编程规范可以改善软件质量,缩短上市时间,提升团队效率,简化维护工作。...,  为什么应该使用STL vector和string代替数组?,  如何选择正确的STL搜索算法?,  为了保证代码的类型安全,应该遵从哪些规则?

    Vector硬件与CANoe/CANalyzer软件版本之间兼容对比图

    在车辆网络诊断和测试领域,Vector公司的产品是业界标准,特别是他们的CANoe和CANalyzer软件。这些工具广泛用于汽车电子系统的开发和验证。本文将详细阐述Vector硬件与CANoe/CANalyzer软件之间的兼容性,帮助用户...

    容器的使用方法

    本主题聚焦于“容器的使用方法”,特别是与Java中的`Vector`类相关的知识。`Vector`是Java集合框架的一部分,它是一个动态数组,允许我们在程序运行时动态地改变其大小。 `Vector`类位于`java.util`包中,它是`...

    image-to-vector:使用Wolfram语言将像素图像转换为矢量图形

    现在,由于部分工作是机密的,并且不能共享(因为它使用了一些内部WL代码),因此值得一提的是,本文并非旨在作为一个完整的分步教程,而是一个有关什么内容的概念性概述。我们正在努力。 希望您会喜欢它并发现它...

    支持向量机回归算法与应用研究 Algorithm and Application Research of Support Vector Machine Reg

    针对纸浆蒸煮过程机理复杂、影响因素众多和数据不完备条件下纸浆Kappa值预报问题,探讨了支持向量机方法在纸浆Kappa值预报中的应用,经过与线性回归方法和人工神经网络方法预报结果比较,表明该方法具有精度高、速度...

    Vector.zip_矢量控制

    有关异步电动机的矢量控制仿真算例,值得一看。

    [2018-ACL].(评价).What you can cram into a single vector:Probing s

    论文 "[2018-ACL].(评价).What you can cram into a single vector:Probing sentence embeddings for linguistic properties" 针对这一问题进行了深入研究。作者通过设计10个专门的探测任务(Probing Tasks),...

    partiision magic

    在IT领域,硬盘管理是日常操作中不可或缺的一环。而“Partition Magic”(分区魔术师)正是这样一款强大的硬盘分区工具,以其出色的性能和用户友好的界面赢得了广大用户的青睐。作为一款绿色版本,它无需安装即可在...

    STL 源码 -- 值得一读

    5. 容器实现:深入理解各种容器的内部实现,例如vector的动态增长策略、list的节点管理等,可以帮助我们更有效地使用这些容器。 6. 算法的效率:分析算法的复杂度和实现细节,可以帮助我们了解如何在实际项目中选择...

    XML初步到精通 XML是一门值得学习的课程

    作为一门值得学习的课程,XML在IT领域扮演着至关重要的角色,尤其在数据交换、文档存储和配置文件等方面。接下来,我们将深入探讨XML的基础知识,包括其基本结构、语法、解析方式以及在实际应用中的重要性。 1. XML...

    Java面试宝典2020修订版V1.0.1.doc

    stop()和suspend()方法为何不推荐使用? 56 2、sleep() 和 wait() 有什么区别? 56 3、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 56 4、线程的基本概念 57 5、什么是多...

    java中慎用继承 以及java中的stack的败笔

    然而,Java中的`java.util.Stack`类是一个值得讨论的例子,它作为`Vector`的子类,体现了设计上的不完美。Stack的特点是后进先出(LIFO),而`Vector`底层使用数组实现,并且是线程安全的。由于继承,`Stack`继承了`...

    java笔试题下载,很值得看的

    在多线程环境下,如果需要保证安全性,可以选择`Vector`,但通常建议使用`Collections.synchronizedList`对`ArrayList`进行同步处理,以提高性能。 - 扩容策略:`Vector`在扩容时默认增加原容量的1倍,`ArrayList`...

    经典C++笔试题,值得新手一看

    6. **STL(Standard Template Library)**:STL是C++库的一部分,包含容器(如vector、list、set、map等)、迭代器、算法和函数对象。它极大地提高了代码的可读性和效率,是现代C++编程中不可或缺的部分。 7. **多...

Global site tag (gtag.js) - Google Analytics