Learning Resources
Vectors
Class Vector
- java.lang.Object
-
- java.util.AbstractCollection
-
- java.util.AbstractList
-
-
java.util.Vector
-
java.util.Vector
-
- Direct Known Subclasses: Stack
public class Vector
extends AbstractList implements List, RandomAccess, Cloneable, Serializable TheVectorclass implements a growable array of objects. Like an array, it contains components that can be accessed using an integer index. However, the size of aVectorcan grow or shrink as needed to accommodate adding and removing items after theVectorhas been created.Each vector tries to optimize storage management by maintaining a
capacityand acapacityIncrement. Thecapacityis 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 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
ConcurrentModificationExceptionon 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,
Vectoris synchronized. If a thread-safe implementation is not needed, it is recommended to use ArrayList in place ofVector.- Since:
- JDK1.0
- See Also: Collection, LinkedList, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field and Description protected intcapacityIncrement The amount by which the capacity of the vector is automatically incremented when its size becomes greater than its capacity.protected intelementCount The number of valid components in thisVectorobject.protected Object[]elementData The array buffer into which the components of the vector are stored.
-
Constructor Summary
Constructors Constructor and Description Vector() Constructs an empty vector so that its internal data array has size10and its standard capacity increment is zero.Vector(CollectionE> 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 booleanadd(E e)Appends the specified element to the end of this Vector.voidadd(int index, E element)Inserts the specified element at the specified position in this Vector.booleanaddAll(CollectionE> 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.booleanaddAll(int index, CollectionE> c)Inserts all of the elements in the specified Collection into this Vector at the specified position.voidaddElement(E obj)Adds the specified component to the end of this vector, increasing its size by one.intcapacity()Returns the current capacity of this vector.voidclear()Removes all of the elements from this Vector.Object clone()Returns a clone of this vector.booleancontains(Object o)Returnstrueif this vector contains the specified element.booleancontainsAll(Collection c)Returns true if this Vector contains all of the elements in the specified Collection.voidcopyInto(Object[] anArray)Copies the components of this vector into the specified array.EelementAt(int index)Returns the component at the specified index.Enumeration<E>elements()Returns an enumeration of the components of this vector.voidensureCapacity(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.booleanequals(Object o)Compares the specified Object with this Vector for equality.EfirstElement()Returns the first component (the item at index0) of this vector.Eget(int index)Returns the element at the specified position in this Vector.inthashCode()Returns the hash code value for this Vector.intindexOf(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.intindexOf(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.voidinsertElementAt(E obj, int index)Inserts the specified object as a component in this vector at the specifiedindex.booleanisEmpty()Tests if this vector has no components.Iterator<E>iterator()Returns an iterator over the elements in this list in proper sequence.ElastElement()Returns the last component of the vector.intlastIndexOf(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.intlastIndexOf(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.booleanremove(Object o)Removes the first occurrence of the specified element in this Vector If the Vector does not contain the element, it is unchanged.booleanremoveAll(Collection c)Removes from this Vector all of its elements that are contained in the specified Collection.voidremoveAllElements()Removes all components from this vector and sets its size to zero.booleanremoveElement(Object obj)Removes the first (lowest-indexed) occurrence of the argument from this vector.voidremoveElementAt(int index)Deletes the component at the specified index.protected voidremoveRange(int fromIndex, int toIndex)Removes from this list all of the elements whose index is betweenfromIndex, inclusive, andtoIndex, exclusive.booleanretainAll(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.voidsetElementAt(E obj, int index)Sets the component at the specifiedindexof this vector to be the specified object.voidsetSize(int newSize)Sets the size of this vector.intsize()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.voidtrimToSize()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 thisVectorobject. 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 size10and its standard capacity increment is zero.
-
Vector
public Vector(CollectionE> 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 indexkin this vector is copied into componentkofanArray.- 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 ofcapacityIncrementis 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, newnullitems are added to the end of the vector. If the new size is less than the current size, all components at indexnewSizeand 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
elementDataof this vector)
-
size
public int size()
Returns the number of components in this vector.- Specified by:
- size in interface Collection<E>
- Specified by:
- size in interface List<E>
- Specified by:
- size in class AbstractCollection<E>
- Returns:
- the number of components in this vector
-
isEmpty
public boolean isEmpty()
Tests if this vector has no components.- Specified by:
- isEmpty in interface Collection<E>
- Specified by:
- isEmpty in interface List<E>
- Overrides:
- isEmpty in class AbstractCollection<E>
- Returns:
-
trueif and only if this vector has no components, that is, its size is zero;falseotherwise.
-
elements
public Enumeration<E> elements()
Returns an enumeration of the components of this vector. The returnedEnumerationobject 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)
Returnstrueif this vector contains the specified element. More formally, returnstrueif and only if this vector contains at least one elementesuch that (o==null ? e==null : o.equals(e)).- Specified by:
- contains in interface Collection <E>
- Specified by:
- contains in interface List <E>
- Overrides:
- contains in class AbstractCollection
<E> - Parameters:
-
o- element whose presence in this vector is to be tested - Returns:
-
trueif 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 indexisuch that (o==null ? get(i)==null : o.equals(get(i))), or -1 if there is no such index.- Specified by:
- indexOf in interface List<E>
- Overrides:
- indexOf in class AbstractList<E>
- Parameters:
-
o- element to search for - Returns:
- the index of the first occurrence of the specified element in this vector, or -1 if this vector does not contain the element
-
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 indexisuch 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
indexor later in the vector;-1if 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 indexisuch that (o==null ? get(i)==null : o.equals(get(i))), or -1 if there is no such index.- Specified by:
- lastIndexOf in interface List<E>
- Overrides:
- lastIndexOf in class AbstractList<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 indexisuch 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
indexin 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
-
-
