专栏首页物流IT圈JDK之Vector实现

JDK之Vector实现

1 继承结构图

Vector同样继承自AbstractList,与ArrayList、LinedList一样,是List的一种实现。

2 数据结构

与ArrayList一样,Vector也是使用对象数组记录元素的值,记录数组长度使用elementCount,与ArrayList不一样的是,Vector每次数组扩容的长度可在初始化的时候设置,用变量capacityIncrement记录。

3 构造方法

如上有四种构造方法,支持无参构造,设定初始长度构造、初始长度和扩容增长长度构造和传入一个Collection对象进行构造。

其余三种构造方法与ArrayList基本一样,只是与ArrayList不一样的是,Vector支持在构造的时候设定每次动态扩容数组长度增长的值,而ArrayList默认每次扩容都是在当前数组长度的基础上增加一般,具体实现如下:

而Vector如果在初始化的时候不设置这个值得话,每次扩容则在当前数组长度的基础上增加一倍,实现如下:

4 需要注意的方法

Vector作为List的一种实现,由于其与ArrayList一样使用对象数组来保存元素,所以其提供的方法与ArrayList基本类似,但是所有方法的定义都多了一个关键字synchronized,相信大家已经知道Vector存在的意义了,那么就是Vector是线程安全的。这也是它与ArrayList的根本区别。

这也决定了ArrayList和Vector在使用上的区别。由于ArrayList不考虑线程安全,所以在执行效率上,ArrayList是优于Vector的,所以在不需要考虑线程安全,或者永远都只会有一个线程能访问到List对象时,最好使用ArrayList,而在可能会有多个线层访问同一个List集合时,使用Vector无疑是最佳选择,因为它的实现已经考虑了线程安全的问题。

本文分享自微信公众号 - 物流IT圈(exiter18)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【开源作品推介】国产开源一站式DevOps平台

    功能:ITSM、基于RBAC权限系统、Web Terminnal登陆日志审计、录像回放、作业调度系统、CMDB、监控报警系统、DNS管理、配置中心等

    物流IT圈
  • 【必须学习】今日头条算法原理(全)

    本次分享将主要介绍今日头条推荐系统概览以及内容分析、用户标签、评估分析,内容安全等原理。

    物流IT圈
  • Redis布隆Bloom过滤器

      Redis提供了三种强大数据结构:HyperLogLog,布隆过滤器和布谷鸟过滤器。本文讨论布隆过滤器:

    物流IT圈
  • Java中的List你真的会用吗?

    最近来了一个实习生,小强问他关于java中list的用法,他很快答上来。然后问他arraylist、vector和linkedList的区别,他就有点懵了,其实...

    程序员小强
  • 机器学习的未来一定是深度学习吗?

    今天与大家分享的是来自Airbnb的朱赟的一篇文章《IT江湖(一)之机器学习篇》,这篇文章讨论的是机器学习的五个部落,现在我们一起带着这些疑问,寻找这些部落后面...

    企鹅号小编
  • ubuntu 下mysql 不显示当前的数据库名解决方法

    如果还要加上时间的话,加--prompt="\u(\d) \R:\m:\s >" 即可

    二狗不要跑
  • 无人货架的下半场:无人货柜

    无人货架在2017年是新零售的风口领域,有众多创业公司在无人零售这一领域拿到了接近17亿美元的投资。但到了2018年上半年,无人货架风雨突变。众多无人货架创业公...

    黄成甲
  • 日媒:5G,中国统治世界科技的梦想

    日媒:5G,中国统治世界科技的梦想 2017年12月25日 09:20:01|来源:环球时报 字号变大 字号变小 ...

    企鹅号小编
  • 【R语言温故而知新】R函数之字符串函数

    尽管R是一门以数值向量和矩阵为核心的统计语言,但字符串同样极为重要。从医疗研究数据里的出生日期到文本挖掘的应用,字符串数据在R程序中使用的频率非常高。R语言提供...

    统计学家
  • 影响网站排名的重要因素:信任度与权威度

    因为搜索引擎经常性地到访你的网站,它们会“感觉”到你的网站是否一切正常。例如:你的网站是否突然获得大量来自坏邻居(垃圾网站)的连结?或是你是否突然之间连结到坏邻...

    数据通20847430

扫码关注云+社区

领取腾讯云代金券