Learning Resources
Vectors
Class Vector
- java.lang.Object
-
-
java.util.AbstractCollection
-
-
java.util.AbstractList
-
-
java.util.Vector
-
java.util.Vector
-
java.util.AbstractList
-
java.util.AbstractCollection
-
- All Implemented Interfaces:
-
Serializable, Cloneable, Iterable
, Collection , List , RandomAccess
- Direct Known Subclasses:
- Stack
public class Vector
extends AbstractList implements List , RandomAccess, Cloneable, Serializable TheVector
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 aVector
can grow or shrink as needed to accommodate adding and removing items after theVector
has been created.Each vector tries to optimize storage management by maintaining a
capacity
and acapacityIncrement
. Thecapacity
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 ofcapacityIncrement
. 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
andlistIterator
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 ownremove
oradd
methods, the iterator will throw aConcurrentModificationException
. 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. TheEnumerations
returned by theelements
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 useArrayList
in place ofVector
.- Since:
- JDK1.0
- See Also:
-
Collection
,LinkedList
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field and Description protected int
capacityIncrement
The amount by which the capacity of the vector is automatically incremented when its size becomes greater than its capacity.protected int
elementCount
The number of valid components in thisVector
object.protected Object[]
elementData
The array buffer into which the components of the vector are stored.-
Fields inherited from class java.util.AbstractList
modCount
-
-
Constructor Summary
Constructors Constructor and Description Vector()
Constructs an empty vector so that its internal data array has size10
and its standard capacity increment is zero.Vector(Collection extends E> c)
Constructs a vector containing the elements of the specified collection, in the order they are returned by the collection's iterator.Vector(int initialCapacity)
Constructs an empty vector with the specified initial capacity and with its capacity increment equal to zero.Vector(int initialCapacity, int capacityIncrement)
Constructs an empty vector with the specified initial capacity and capacity increment.
-
Method Summary
Methods Modifier and Type Method and Description boolean
add(E e)
Appends the specified element to the end of this Vector.void
add(int index, E element)
Inserts the specified element at the specified position in this Vector.boolean
addAll(Collection extends E> c)
Appends all of the elements in the specified Collection to the end of this Vector, in the order that they are returned by the specified Collection's Iterator.boolean
addAll(int index, Collection extends E> c)
Inserts all of the elements in the specified Collection into this Vector at the specified position.void
addElement(E obj)
Adds the specified component to the end of this vector, increasing its size by one.int
capacity()
Returns the current capacity of this vector.void
clear()
Removes all of the elements from this Vector.Object
clone()
Returns a clone of this vector.boolean
contains(Object o)
Returnstrue
if this vector contains the specified element.boolean
containsAll(Collection> c)
Returns true if this Vector contains all of the elements in the specified Collection.void
copyInto(Object[] anArray)
Copies the components of this vector into the specified array.E
elementAt(int index)
Returns the component at the specified index.Enumeration<E>
elements()
Returns an enumeration of the components of this vector.void
ensureCapacity(int minCapacity)
Increases the capacity of this vector, if necessary, to ensure that it can hold at least the number of components specified by the minimum capacity argument.boolean
equals(Object o)
Compares the specified Object with this Vector for equality.E
firstElement()
Returns the first component (the item at index0
) of this vector.E
get(int index)
Returns the element at the specified position in this Vector.int
hashCode()
Returns the hash code value for this Vector.int
indexOf(Object o)
Returns the index of the first occurrence of the specified element in this vector, or -1 if this vector does not contain the element.int
indexOf(Object o, int index)
Returns the index of the first occurrence of the specified element in this vector, searching forwards fromindex
, or returns -1 if the element is not found.void
insertElementAt(E obj, int index)
Inserts the specified object as a component in this vector at the specifiedindex
.boolean
isEmpty()
Tests if this vector has no components.Iterator<E>
iterator()
Returns an iterator over the elements in this list in proper sequence.E
lastElement()
Returns the last component of the vector.int
lastIndexOf(Object o)
Returns the index of the last occurrence of the specified element in this vector, or -1 if this vector does not contain the element.int
lastIndexOf(Object o, int index)
Returns the index of the last occurrence of the specified element in this vector, searching backwards fromindex
, or returns -1 if the element is not found.ListIterator<E>
listIterator()
Returns a list iterator over the elements in this list (in proper sequence).ListIterator<E>
listIterator(int index)
Returns a list iterator over the elements in this list (in proper sequence), starting at the specified position in the list.E
remove(int index)
Removes the element at the specified position in this Vector.boolean
remove(Object o)
Removes the first occurrence of the specified element in this Vector If the Vector does not contain the element, it is unchanged.boolean
removeAll(Collection> c)
Removes from this Vector all of its elements that are contained in the specified Collection.void
removeAllElements()
Removes all components from this vector and sets its size to zero.boolean
removeElement(Object obj)
Removes the first (lowest-indexed) occurrence of the argument from this vector.void
removeElementAt(int index)
Deletes the component at the specified index.protected void
removeRange(int fromIndex, int toIndex)
Removes from this list all of the elements whose index is betweenfromIndex
, inclusive, andtoIndex
, exclusive.boolean
retainAll(Collection> c)
Retains only the elements in this Vector that are contained in the specified Collection.E
set(int index, E element)
Replaces the element at the specified position in this Vector with the specified element.void
setElementAt(E obj, int index)
Sets the component at the specifiedindex
of this vector to be the specified object.void
setSize(int newSize)
Sets the size of this vector.int
size()
Returns the number of components in this vector.List<E>
subList(int fromIndex, int toIndex)
Returns a view of the portion of this List between fromIndex, inclusive, and toIndex, exclusive.Object[]
toArray()
Returns an array containing all of the elements in this Vector in the correct order.T[] toArray(T[] a)
Returns an array containing all of the elements in this Vector in the correct order; the runtime type of the returned array is that of the specified array.String
toString()
Returns a string representation of this Vector, containing the String representation of each element.void
trimToSize()
Trims the capacity of this vector to be the vector's current size.
-
-
-
Field Detail
-
elementData
protected Object[] elementData
The array buffer into which the components of the vector are stored. The capacity of the vector is the length of this array buffer, and is at least large enough to contain all the vector's elements.Any array elements following the last element in the Vector are null.
-
elementCount
protected int elementCount
The number of valid components in thisVector
object. ComponentselementData[0]
throughelementData[elementCount-1]
are the actual items.
-
capacityIncrement
protected int capacityIncrement
The amount by which the capacity of the vector is automatically incremented when its size becomes greater than its capacity. If the capacity increment is less than or equal to zero, the capacity of the vector is doubled each time it needs to grow.
-
-
Constructor Detail
-
Vector
public Vector(int initialCapacity, int capacityIncrement)
Constructs an empty vector with the specified initial capacity and capacity increment.- Parameters:
-
initialCapacity
- the initial capacity of the vector -
capacityIncrement
- the amount by which the capacity is increased when the vector overflows - Throws:
-
IllegalArgumentException
- if the specified initial capacity is negative
-
Vector
public Vector(int initialCapacity)
Constructs an empty vector with the specified initial capacity and with its capacity increment equal to zero.- Parameters:
-
initialCapacity
- the initial capacity of the vector - Throws:
-
IllegalArgumentException
- if the specified initial capacity is negative
-
Vector
public Vector()
Constructs an empty vector so that its internal data array has size10
and its standard capacity increment is zero.
-
Vector
public Vector(Collection extends E> c)
Constructs a vector containing the elements of the specified collection, in the order they are returned by the collection's iterator.- Parameters:
-
c
- the collection whose elements are to be placed into this vector - Throws:
-
NullPointerException
- if the specified collection is null - Since:
- 1.2
-
-
Method Detail
-
copyInto
public void copyInto(Object[] anArray)
Copies the components of this vector into the specified array. The item at indexk
in this vector is copied into componentk
ofanArray
.- Parameters:
-
anArray
- the array into which the components get copied - Throws:
-
NullPointerException
- if the given array is null -
IndexOutOfBoundsException
- if the specified array is not large enough to hold all the components of this vector -
ArrayStoreException
- if a component of this vector is not of a runtime type that can be stored in the specified array - See Also:
-
toArray(Object[])
-
trimToSize
public void trimToSize()
Trims the capacity of this vector to be the vector's current size. If the capacity of this vector is larger than its current size, then the capacity is changed to equal the size by replacing its internal data array, kept in the fieldelementData
, with a smaller one. An application can use this operation to minimize the storage of a vector.
-
ensureCapacity
public void ensureCapacity(int minCapacity)
Increases the capacity of this vector, if necessary, to ensure that it can hold at least the number of components specified by the minimum capacity argument.If the current capacity of this vector is less than
minCapacity
, then its capacity is increased by replacing its internal data array, kept in the fieldelementData
, with a larger one. The size of the new data array will be the old size pluscapacityIncrement
, unless the value ofcapacityIncrement
is less than or equal to zero, in which case the new capacity will be twice the old capacity; but if this new size is still smaller thanminCapacity
, then the new capacity will beminCapacity
.- Parameters:
-
minCapacity
- the desired minimum capacity
-
setSize
public void setSize(int newSize)
Sets the size of this vector. If the new size is greater than the current size, newnull
items are added to the end of the vector. If the new size is less than the current size, all components at indexnewSize
and greater are discarded.- Parameters:
-
newSize
- the new size of this vector - Throws:
-
ArrayIndexOutOfBoundsException
- if the new size is negative
-
capacity
public int capacity()
Returns the current capacity of this vector.- Returns:
-
the current capacity (the length of its internal data array, kept in the field
elementData
of this vector)
-
size
public int size()
Returns the number of components in this vector.- Specified by:
-
size
in interfaceCollection<E>
- Specified by:
-
size
in interfaceList<E>
- Specified by:
-
size
in classAbstractCollection<E>
- Returns:
- the number of components in this vector
-
isEmpty
public boolean isEmpty()
Tests if this vector has no components.- Specified by:
-
isEmpty
in interfaceCollection<E>
- Specified by:
-
isEmpty
in interfaceList<E>
- Overrides:
-
isEmpty
in classAbstractCollection<E>
- Returns:
-
true
if and only if this vector has no components, that is, its size is zero;false
otherwise.
-
elements
public Enumeration<E> elements()
Returns an enumeration of the components of this vector. The returnedEnumeration
object will generate all items in this vector. The first item generated is the item at index0
, then the item at index1
, and so on.- Returns:
- an enumeration of the components of this vector
- See Also:
-
Iterator
-
contains
public boolean contains(Object o)
Returnstrue
if this vector contains the specified element. More formally, returnstrue
if and only if this vector contains at least one elemente
such that (o==null ? e==null : o.equals(e)).- Specified by:
-
contains
in interfaceCollection<E>
- Specified by:
-
contains
in interfaceList<E>
- Overrides:
-
contains
in classAbstractCollection<E>
- Parameters:
-
o
- element whose presence in this vector is to be tested - Returns:
-
true
if this vector contains the specified element
-
indexOf
public int indexOf(Object o)
Returns the index of the first occurrence of the specified element in this vector, or -1 if this vector does not contain the element. More formally, returns the lowest indexi
such that (o==null ? get(i)==null : o.equals(get(i))), or -1 if there is no such index.
-
indexOf
public int indexOf(Object o, int index)
Returns the index of the first occurrence of the specified element in this vector, searching forwards fromindex
, or returns -1 if the element is not found. More formally, returns the lowest indexi
such that (i >= index && (o==null ? get(i)==null : o.equals(get(i)))), or -1 if there is no such index.- Parameters:
-
o
- element to search for -
index
- index to start searching from - Returns:
-
the index of the first occurrence of the element in this vector at position
index
or later in the vector;-1
if the element is not found. - Throws:
-
IndexOutOfBoundsException
- if the specified index is negative - See Also:
-
Object.equals(Object)
-
lastIndexOf
public int lastIndexOf(Object o)
Returns the index of the last occurrence of the specified element in this vector, or -1 if this vector does not contain the element. More formally, returns the highest indexi
such that (o==null ? get(i)==null : o.equals(get(i))), or -1 if there is no such index.- Specified by:
-
lastIndexOf
in interfaceList<E>
- Overrides:
-
lastIndexOf
in classAbstractList<E>
- Parameters:
-
o
- element to search for - Returns:
- the index of the last occurrence of the specified element in this vector, or -1 if this vector does not contain the element
-
lastIndexOf
public int lastIndexOf(Object o, int index)
Returns the index of the last occurrence of the specified element in this vector, searching backwards fromindex
, or returns -1 if the element is not found. More formally, returns the highest indexi
such that (i <= index && (o==null ? get(i)==null : o.equals(get(i)))), or -1 if there is no such index.- Parameters:
-
o
- element to search for -
index
- index to start searching backwards from - Returns:
-
the index of the last occurrence of the element at position less than or equal to
index
in this vector; -1 if the element is not found. - Throws:
-
IndexOutOfBoundsException
- if the specified index is greater than or equal to the current size of this vector
-
elementAt
public For Support
-
-