The 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
Vector
can grow or shrink as needed to accommodate
adding and removing items after the Vector
has been created.
Each vector tries to optimize storage management by maintaining a
capacity
and a capacityIncrement
. The
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
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 iterator
and
listIterator
methods are fail-fast:
if the vector is structurally modified at any time after the iterator is
created, in any way except through the iterator's own
remove
or
add
methods, the iterator will throw a
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 Enumerations
returned by
the elements
method are not fail-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 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 List
interface, making it a member of the
Java Collections Framework. Unlike the new collection
implementations, Vector
is synchronized. If a thread-safe
implementation is not needed, it is recommended to use ArrayList
in place of Vector
.
extends
Collection, LinkedList