美文网首页
Vector源码学习

Vector源码学习

作者: supory | 来源:发表于2018-03-08 11:48 被阅读6次

/** * The {@code Vector} class implements a growable array of * objects. Like an array, it contains components that can be * accessed using an integer index. However, the size of a * {@code Vector} can grow or shrink as needed to accommodate * adding and removing items after the {@code Vector} has been created. * *

Vector实现了一个可增长的数组集合。如同数组,他可以使用整形索引index来访问元素。然而,vector在创建实例后,可以通过增加和删除元素来增长或减少vector的大小。

Each vector tries to optimize storage management by maintaining a

* {@code capacity} and a {@code capacityIncrement}. The

* {@code capacity} is always at least as large as the vector

* size; it is usually larger because as components are added to the

* vector, the vector's storage increases in chunks the size of

* {@code capacityIncrement}. An application can increase the

* capacity of a vector before inserting a large number of

* components; this reduces the amount of incremental reallocation.

*

*

* The iterators returned by this class's {@link #iterator() iterator} and * {@link #listIterator(int) listIterator} methods arefail-fast: * if the vector is structurally modified at any time after the iterator is * created, in any way except through the iterator's own * {@link ListIterator#remove() remove} or * {@link ListIterator#add(Object) add} methods, the iterator will throw a * {@link ConcurrentModificationException}.  Thus, in the face of * concurrent modification, the iterator fails quickly and cleanly, rather * than risking arbitrary, non-deterministic behavior at an undetermined * time in the future.  The {@link Enumeration Enumerations} returned by * the {@link #elements() elements} method arenotfail-fast. * *

Note that the fail-fast behavior of an iterator cannot be guaranteed * as it is, generally speaking, impossible to make any hard guarantees in the * presence of unsynchronized concurrent modification.  Fail-fast iterators * throw {@code ConcurrentModificationException} on a best-effort basis. * Therefore, it would be wrong to write a program that depended on this * exception for its correctness:the fail-fast behavior of iterators

* should be used only to detect bugs.* *

As of the Java 2 platform v1.2, this class was retrofitted to

* implement the {@link List} interface, making it a member of the

* * Java Collections Framework.  Unlike the new collection * implementations, {@code Vector} is synchronized.  If a thread-safe * implementation is not needed, it is recommended to use {@link * ArrayList} in place of {@code Vector}.

实现了list接口,称为collection框架的一员,与新的collection不同的是,vector是线程安全的。如果不需要线程安全,建议使用arrayList代替Vector.

多种初始化方式

Vector():默认容量10,增长0

Vector(size):容量size,增长0

Vector(size,increaseMount):容量size,增长increaseMount

Vector(new Collection()):使用实现了Collection接口类的实例来初始化。

相关文章

网友评论

      本文标题:Vector源码学习

      本文链接:https://www.haomeiwen.com/subject/xxadfftx.html