Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.Vector<T>
public class Vector<T>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
Vector
classes implements growable arrays of Objects.
You can access elements in a Vector with an index, just as you
can in a built in array, but Vectors can grow and shrink to accommodate
more or fewer objects.
Vectors try to mantain efficiency in growing by having a
capacityIncrement
that can be specified at instantiation.
When a Vector can no longer hold a new Object, it grows by the amount
in capacityIncrement
. If this value is 0, the vector doubles in
size.
Vector implements the JDK 1.2 List interface, and is therefore a fully
compliant Collection object. The iterators are fail-fast - if external
code structurally modifies the vector, any operation on the iterator will
then throw a ConcurrentModificationException
. The Vector class is
fully synchronized, but the iterators are not. So, when iterating over a
vector, be sure to synchronize on the vector itself. If you don't want the
expense of synchronization, use ArrayList instead. On the other hand, the
Enumeration of elements() is not thread-safe, nor is it fail-fast; so it
can lead to undefined behavior even in a single thread if you modify the
vector during iteration.
Note: Some methods, especially those specified by List, specify throwing
IndexOutOfBoundsException
, but it is easier to implement by
throwing the subclass ArrayIndexOutOfBoundsException
. Others
directly specify this subclass.
Collection
, List
, ArrayList
, LinkedList
, Serialized FormField Summary | |
protected int |
|
protected int |
|
protected Object[] |
|
Fields inherited from class java.util.AbstractList<E> | |
modCount |
Constructor Summary | |
| |
| |
| |
|
Method Summary | |
|
|
boolean |
|
void |
|
boolean |
|
boolean |
|
void |
|
int |
|
void |
|
Object |
|
boolean | |
boolean |
|
void | |
Enumeration |
|
void |
|
boolean | |
T |
|
int |
|
int | |
int | |
void |
|
boolean |
|
int |
|
int |
|
boolean | |
boolean |
|
void |
|
boolean |
|
void |
|
protected void |
|
boolean |
|
void |
|
void |
|
int |
|
List |
|
Object[] |
|
String |
|
void |
|
Methods inherited from class java.util.AbstractList<E> | |
add , add , addAll , clear , equals , get , hashCode , indexOf , iterator , lastIndexOf , listIterator , listIterator , remove , removeRange , set , subList |
Methods inherited from class java.util.AbstractCollection<E> | |
T[] toArray , add , addAll , clear , contains , containsAll , isEmpty , iterator , remove , removeAll , retainAll , size , toArray , toString |
Methods inherited from class java.lang.Object | |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
protected int capacityIncrement
The amount the Vector's internal array should be increased in size when a new element is added that exceeds the current size of the array, or whenensureCapacity(int)
is called. If <= 0, the vector just doubles in size.
protected int elementCount
The number of elements currently in the vector, also returned bysize()
.
protected Object[] elementData
The internal array used to hold members of a Vector. The elements are in positions 0 through elementCount - 1, and all remaining slots are null.
public Vector()
Constructs an empty vector with an initial size of 10, and a capacity increment of 0
public Vector(T> c)
Constructs a vector containing the contents of Collection, in the order given by the collection.
- Parameters:
c
- collection of elements to add to the new vector
- Throws:
NullPointerException
- if c is null
- Since:
- 1.2
public Vector(int initialCapacity)
Constructs a Vector with the initial capacity specified, and a capacity increment of 0 (double in size).
- Parameters:
initialCapacity
- the initial size of the Vector's internal array
- Throws:
IllegalArgumentException
- if initialCapacity < 0
public Vector(int initialCapacity, int capacityIncrement)
Constructs a Vector with the initial capacity and capacity increment specified.
- Parameters:
initialCapacity
- the initial size of the Vector's internal arraycapacityIncrement
- the amount the internal array should be increased by when necessary, 0 to double the size
- Throws:
IllegalArgumentException
- if initialCapacity < 0
publicS[] toArray(S[] a)
Returns an array containing the contents of this Vector. If the provided array is large enough, the contents are copied into that array, and a null is placed in the position size(). In this manner, you can obtain the size of a Vector by the position of the null element, if you know the vector does not itself contain null entries. If the array is not large enough, reflection is used to create a bigger one of the same runtime type.
Parameters:a
- an array to copy the Vector into if large enough
Returns:an array with the contents of this Vector in order
Throws:ArrayStoreException
- the runtime type of the provided array cannot hold the elements of the VectorNullPointerException
- ifa
is null
Since:1.2
public boolean add(T o)
Adds an object to the Vector.
- Parameters:
o
- the element to add to the Vector
- Returns:
- true, as specified by List
- Since:
- 1.2
public void add(int index, T element)
Adds an object at the specified index. Elements at or above index are shifted up one position.
- Parameters:
index
- the index at which to add the elementelement
- the element to add to the Vector
- Throws:
ArrayIndexOutOfBoundsException
- index < 0 || index > size()
- Since:
- 1.2
public boolean addAll(T> c)
Appends all elements of the given collection to the end of this Vector. Behavior is undefined if the collection is modified during this operation (for example, if this == c).
- Parameters:
c
- the collection to append
- Returns:
- true if this vector changed, in other words c was not empty
- Throws:
NullPointerException
- if c is null
- Since:
- 1.2
public boolean addAll(int index, T> c)
Inserts all elements of the given collection at the given index of this Vector. Behavior is undefined if the collection is modified during this operation (for example, if this == c).
- Parameters:
c
- the collection to append
- Returns:
- true if this vector changed, in other words c was not empty
- Throws:
NullPointerException
- if c is nullArrayIndexOutOfBoundsException
- index < 0 || index > size()
- Since:
- 1.2
public void addElement(T obj)
Adds an element to the Vector at the end of the Vector. The vector is increased by ensureCapacity(size() + 1) if needed.
- Parameters:
obj
- the object to add to the Vector
public int capacity()
Returns the size of the internal data array (not the amount of elements contained in the Vector).
- Returns:
- capacity of the internal data array
public void clear()
Clears all elements in the Vector and sets its size to 0.
- Specified by:
- clear in interface List<E>
- clear in interface Collection<E>
- Overrides:
- clear in interface AbstractList<E>
public Object clone()
Creates a new Vector with the same contents as this one. The clone is shallow; elements are not cloned.
- Returns:
- the clone of this vector
public boolean contains(Object elem)
Returns true whenelem
is contained in this Vector.
- Specified by:
- contains in interface List<E>
- contains in interface Collection<E>
- Overrides:
- contains in interface AbstractCollection<E>
- Parameters:
elem
- the element to check
- Returns:
- true if the object is contained in this Vector, false otherwise
public boolean containsAll(Collection c)
Returns true if this Vector contains all the elements in c.
- Specified by:
- containsAll in interface List<E>
- containsAll in interface Collection<E>
- Overrides:
- containsAll in interface AbstractCollection<E>
- Parameters:
c
- the collection to compare to
- Returns:
- true if this vector contains all elements of c
- Throws:
NullPointerException
- if c is null
- Since:
- 1.2
public void copyInto(Object[] a)
Copies the contents of the Vector into the provided array. If the array is too small to fit all the elements in the Vector, anIndexOutOfBoundsException
is thrown without modifying the array. Old elements in the array are overwritten by the new elements.
- Parameters:
a
- target array for the copy
- Throws:
IndexOutOfBoundsException
- the array is not large enoughNullPointerException
- the array is null
- See Also:
toArray(Object[])
public Enumerationelements()
Returns an Enumeration of the elements of this Vector. The enumeration visits the elements in increasing index order, but is NOT thread-safe.
- Returns:
- an Enumeration
- See Also:
iterator()
public void ensureCapacity(int minCapacity)
Ensures thatminCapacity
elements can fit within this Vector. IfelementData
is too small, it is expanded as follows: If theelementCount + capacityIncrement
is adequate, that is the new size. IfcapacityIncrement
is non-zero, the candidate size is double the current. If that is not enough, the new size isminCapacity
.
- Parameters:
minCapacity
- the desired minimum capacity, negative values ignored
public boolean equals(Object o)
Compares this to the given object.
- Specified by:
- equals in interface List<E>
- equals in interface Collection<E>
- Overrides:
- equals in interface AbstractList<E>
- Parameters:
o
- the object to compare to
- Returns:
- true if the two are equal
- Since:
- 1.2
public T get(int index)
Returns the element at positionindex
.
- Overrides:
- get in interface AbstractList<E>
- Parameters:
index
- the position from which an element will be retrieved
- Returns:
- the element at that position
- Throws:
ArrayIndexOutOfBoundsException
- index < 0 || index >= size()
- Since:
- 1.2
public int hashCode()
Computes the hashcode of this object.
- Specified by:
- hashCode in interface List<E>
- hashCode in interface Collection<E>
- Overrides:
- hashCode in interface AbstractList<E>
- Returns:
- the hashcode
- Since:
- 1.2
public int indexOf(Object elem)
Returns the first occurrence ofelem
in the Vector, or -1 ifelem
is not found.
- Overrides:
- indexOf in interface AbstractList<E>
- Parameters:
elem
- the object to search for
- Returns:
- the index of the first occurrence, or -1 if not found
public int indexOf(Object e, int index)
Searches the vector starting atindex
for objectelem
and returns the index of the first occurrence of this Object. If the object is not found, or index is larger than the size of the vector, -1 is returned.
- Parameters:
e
- the Object to search forindex
- start searching at this index
- Returns:
- the index of the next occurrence, or -1 if it is not found
- Throws:
IndexOutOfBoundsException
- if index < 0
public void insertElementAt(T obj, int index)
Inserts a new element into the Vector atindex
. Any elements at or greater than index are shifted up one position.
- Parameters:
obj
- the object to insertindex
- the index at which the object is inserted
- Throws:
ArrayIndexOutOfBoundsException
- index < 0 || index > size()
- See Also:
add(int, Object)
public boolean isEmpty()
Returns true if this Vector is empty, false otherwise
- Specified by:
- isEmpty in interface List<E>
- isEmpty in interface Collection<E>
- Overrides:
- isEmpty in interface AbstractCollection<E>
- Returns:
- true if the Vector is empty, false otherwise
public int lastIndexOf(Object elem)
Returns the last index ofelem
within this Vector, or -1 if the object is not within the Vector.
- Specified by:
- lastIndexOf in interface List<E>
- Overrides:
- lastIndexOf in interface AbstractList<E>
- Parameters:
elem
- the object to search for
- Returns:
- the last index of the object, or -1 if not found
public int lastIndexOf(Object e, int index)
Returns the index of the first occurrence ofelem
, when searching backwards fromindex
. If the object does not occur in this Vector, or index is less than 0, -1 is returned.
- Parameters:
e
- the object to search forindex
- the index to start searching in reverse from
- Returns:
- the index of the Object if found, -1 otherwise
- Throws:
IndexOutOfBoundsException
- if index >= size()
public boolean remove(Object o)
Removes the given Object from the Vector. If it exists, true is returned, if not, false is returned.
- Specified by:
- remove in interface List<E>
- remove in interface Collection<E>
- Overrides:
- remove in interface AbstractCollection<E>
- Parameters:
o
- the object to remove from the Vector
- Returns:
- true if the Object existed in the Vector, false otherwise
- Since:
- 1.2
public boolean removeAll(Collection c)
Remove from this vector all elements contained in the given collection.
- Specified by:
- removeAll in interface List<E>
- removeAll in interface Collection<E>
- Overrides:
- removeAll in interface AbstractCollection<E>
- Parameters:
c
- the collection to filter out
- Returns:
- true if this vector changed
- Throws:
NullPointerException
- if c is null
- Since:
- 1.2
public void removeAllElements()
Removes all elements from the Vector. Note that this does not resize the internal data array.
- See Also:
clear()
public boolean removeElement(Object obj)
Removes the first (the lowest index) occurrence of the given object from the Vector. If such a remove was performed (the object was found), true is returned. If there was no such object, false is returned.
- Parameters:
obj
- the object to remove from the Vector
- Returns:
- true if the Object was in the Vector, false otherwise
- See Also:
remove(Object)
public void removeElementAt(int index)
Removes the element atindex
, and shifts all elements at positions greater than index to their index - 1.
- Parameters:
index
- the index of the element to remove
- Throws:
ArrayIndexOutOfBoundsException
- index < 0 || index >= size();
- See Also:
remove(int)
protected void removeRange(int fromIndex, int toIndex)
Removes a range of elements from this list. Does nothing when toIndex is equal to fromIndex.
- Overrides:
- removeRange in interface AbstractList<E>
- Parameters:
fromIndex
- the index to start deleting from (inclusive)toIndex
- the index to delete up to (exclusive)
- Throws:
IndexOutOfBoundsException
- if fromIndex > toIndex
public boolean retainAll(Collection c)
Retain in this vector only the elements contained in the given collection.
- Specified by:
- retainAll in interface List<E>
- retainAll in interface Collection<E>
- Overrides:
- retainAll in interface AbstractCollection<E>
- Parameters:
c
- the collection to filter by
- Returns:
- true if this vector changed
- Throws:
NullPointerException
- if c is null
- Since:
- 1.2
public void setElementAt(T obj, int index)
Changes the element atindex
to beobj
- Parameters:
obj
- the object to storeindex
- the position in the Vector to store the object
- Throws:
ArrayIndexOutOfBoundsException
- the index is out of range
- See Also:
set(int, Object)
public void setSize(int newSize)
Explicitly sets the size of the vector (but not necessarily the size of the internal data array). If the new size is smaller than the old one, old values that don't fit are lost. If the new size is larger than the old one, the vector is padded with null entries.
- Parameters:
newSize
- The new size of the internal array
- Throws:
ArrayIndexOutOfBoundsException
- if the new size is negative
public int size()
Returns the number of elements stored in this Vector.
- Specified by:
- size in interface List<E>
- size in interface Collection<E>
- Overrides:
- size in interface AbstractCollection<E>
- Returns:
- the number of elements in this Vector
public ListsubList(int fromIndex, int toIndex)
Obtain a List view of a subsection of this list, from fromIndex (inclusive) to toIndex (exclusive). If the two indices are equal, the sublist is empty. The returned list is modifiable, and changes in one reflect in the other. If this list is structurally modified in any way other than through the returned list, the result of any subsequent operations on the returned list is undefined.
- Overrides:
- subList in interface AbstractList<E>
- Parameters:
fromIndex
- the index that the returned list should start from (inclusive)toIndex
- the index that the returned list should go to (exclusive)
- Returns:
- a List backed by a subsection of this vector
- Throws:
IndexOutOfBoundsException
- if fromIndex < 0 || toIndex > size()IllegalArgumentException
- if fromIndex > toIndex
- Since:
- 1.2
- See Also:
ConcurrentModificationException
public Object[] toArray()
Returns an Object array with the contents of this Vector, in the order they are stored within this Vector. Note that the Object array returned is not the internal data array, and that it holds only the elements within the Vector. This is similar to creating a new Object[] with the size of this Vector, then calling Vector.copyInto(yourArray).
- Specified by:
- toArray in interface List<E>
- toArray in interface Collection<E>
- Overrides:
- toArray in interface AbstractCollection<E>
- Returns:
- an Object[] containing the contents of this Vector in order
- Since:
- 1.2
public String toString()
Returns a string representation of this Vector in the form "[element0, element1, ... elementN]".
- Overrides:
- toString in interface AbstractCollection<E>
- Returns:
- the String representation of this Vector
public void trimToSize()
Trims the Vector down to size. If the internal data array is larger than the number of Objects its holding, a new array is constructed that precisely holds the elements. Otherwise this does nothing.