资讯专栏INFORMATION COLUMN

Java容器类研究6:Vector

Charles / 714人阅读

摘要:不同点是线程安全的,方法有关键字修饰。容量增长策略默认的增长策略是每次在原容量的基础上。的怎么做到线程安全的实现了自己的,为了保证并发线程安全的共享一个,开发者在等方法中也加入了。与类继承自,的实现不止一种方式,比如。

java.util.Vector

Vector与ArrayList的异同

相同点:随机存取,可通过位置序号直接获取数据。都是通过一个数组来存放元素。

不同点:Vector是线程安全的,方法有synchronized关键字修饰。

Vector容量增长策略

Vector默认的增长策略是每次在原容量的基础上x2。

Vector的ListIterator怎么做到线程安全的

Vector实现了自己的iterator,为了保证并发线程安全的共享一个Vector,开发者在next等方法中也加入了synchronized。

    public E next() {
            synchronized (Vector.this) {
                checkForComodification();
                int i = cursor;
                if (i >= elementCount)
                    throw new NoSuchElementException();
                cursor = i + 1;
                return elementData(lastRet = i);
            }
    }

这里synchronized修饰的是Vector.this对象本身,而不是iterator自己,这样多个线程使用iterator操作Vector时,就可以保证线程的安全。

Vector与ArrayList实现的Spliterator类似

唯一的区别就是在使用自己的Vector时,加上了synchronized关键字。

Stack与Vector

Stack类继承自Vector,stack的实现不止一种方式,比如LinkedList。java中在Vector基础上实现了一个Stack。实现的想法也很简单,就是在数组的末尾push和pop。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67830.html

相关文章

  • 容器之Collection、Iterable、List、Vector(Stack)分析(三)

    摘要:容器相关的操作及其源码分析说明本文是基于分析的。通常,我们通过迭代器来遍历集合。是接口所特有的,在接口中,通过返回一个对象。为了偷懒啊,底层使用了迭代器。即返回的和原在元素上保持一致,但不可修改。 容器相关的操作及其源码分析 说明 1、本文是基于JDK 7 分析的。JDK 8 待我工作了得好好研究下。Lambda、Stream。 2、本文会贴出大量的官方注释文档,强迫自己学英语,篇幅...

    liaosilzu2007 评论0 收藏0
  • 通过面试题,让我们来了解Collection

    摘要:说一说迭代器通过集合对象获取其对应的对象判断是否存在下一个元素取出该元素并将迭代器对象指向下一个元素取出元素的方式迭代器。对于使用容器者而言,具体的实现不重要,只要通过容器获取到该实现的迭代器的对象即可,也就是方法。 前言 欢迎关注微信公众号:Coder编程获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!** 本章主要介绍Collection集合相关知识,结合面试中会提到...

    HelKyle 评论0 收藏0
  • Week 2 - Java 容器 - 详细剖析 List 之 ArrayList, Vector,

    摘要:底层使用的是双向链表数据结构之前为循环链表,取消了循环。快速随机访问就是通过元素的序号快速获取元素对象对应于方法。而接口就是用来标识该类支持快速随机访问。仅仅是起标识作用。,中文名为双端队列。不同的是,是线程安全的,内部使用了进行同步。 前言 学习情况记录 时间:week 2 SMART子目标 :Java 容器 记录在学习Java容器 知识点中,关于List的需要重点记录的知识点。...

    MartinDai 评论0 收藏0
  • Java容器研究1:Collection

    摘要:集合类关系是和的父接口。相等必须是对称的,约定只能和其它相等,亦然。和接口在中引入,这个单词是和的合成,用来分割集合以给并行处理提供方便。这些并不立即执行,而是等到最后一个函数,统一执行。 集合类关系: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ...

    AprilJ 评论0 收藏0
  • Java集合总结

    摘要:概述集合类主要有大分支,及。不能保证元素的排列顺序,顺序有可能发生变化不是同步的集合元素可以是但只能放入一个是接口的唯一实现类,可以确保集合元素处于排序状态。如果这两个的通过比较返回,新添加的将覆盖集合中原有的,但不会覆盖。 概述 Java集合类主要有2大分支,Collection及Map。Collection体系如下: https://upload-images.jianshu......

    toddmark 评论0 收藏0

发表评论

0条评论

Charles

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<