Java容器类研究6:Vector

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java容器类研究6:Vector脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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。

脚本宝典总结

以上是脚本宝典为你收集整理的Java容器类研究6:Vector全部内容,希望文章能够帮你解决Java容器类研究6:Vector所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。