java.util
Class Vector

java.lang.Object
  |
  +--java.util.Vector
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
Stack

public class Vector
extends Object
implements Cloneable

Vector class (a growable array).

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 elements are added to the vector, the vector's storage increases in chunks the size of capacityIncrement. Setting the capacity to what you want before inserting a large number of objects will reduce the amount of incremental reallocation. You can safely ignore the capacity and the vector will still work correctly.


Field Summary
protected  int capacityIncrement
          The size of the increment.
protected  int elementCount
          The number of elements in the buffer.
protected  Object[] elementData
          The buffer where elements are stored.
 
Constructor Summary
Vector()
          Constructs an empty vector.
Vector(int initialCapacity)
          Constructs an empty vector with the specified storage capacity.
Vector(int initialCapacity, int capacityIncrement)
          Constructs an empty vector with the specified storage capacity and the specified capacityIncrement.
 
Method Summary
 void addElement(Object obj)
          Adds the specified object as the last element of the vector.
 int capacity()
          Returns the current capacity of the vector.
 Object clone()
          Clones this vector.
 boolean contains(Object elem)
          Returns true if the specified object is a value of the collection.
 void copyInto(Object[] anArray)
          Copies the elements of this vector into the specified array.
 Object elementAt(int index)
          Returns the element at the specified index.
 Enumeration elements()
          Returns an enumeration of the elements.
 void ensureCapacity(int minCapacity)
          Ensures that the vector has at least the specified capacity.
 Object firstElement()
          Returns the first element of the sequence.
 int indexOf(Object elem)
          Searches for the specified object, starting from the first position and returns an index to it.
 int indexOf(Object elem, int index)
          Searches for the specified object, starting at the specified position and returns an index to it.
 void insertElementAt(Object obj, int index)
          Inserts the specified object as an element at the specified index.
 boolean isEmpty()
          Returns true if the collection contains no values.
 Object lastElement()
          Returns the last element of the sequence.
 int lastIndexOf(Object elem)
          Searches backwards for the specified object, starting from the last position and returns an index to it.
 int lastIndexOf(Object elem, int index)
          Searches backwards for the specified object, starting from the specified position and returns an index to it.
 void removeAllElements()
          Removes all elements of the vector.
 boolean removeElement(Object obj)
          Removes the element from the vector.
 void removeElementAt(int index)
          Deletes the element at the specified index.
 void setElementAt(Object obj, int index)
          Sets the element at the specified index to be the specified object.
 void setSize(int newSize)
          Sets the size of the vector.
 int size()
          Returns the number of elements in the vector.
 String toString()
          Converts the vector to a string.
 void trimToSize()
          Trims the vector's capacity down to size.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

elementData

protected Object[] elementData
The buffer where elements are stored.


elementCount

protected int elementCount
The number of elements in the buffer.


capacityIncrement

protected int capacityIncrement
The size of the increment. If it is 0 the size of the the buffer is doubled everytime it needs to grow.

Constructor Detail

Vector

public Vector(int initialCapacity,
              int capacityIncrement)
Constructs an empty vector with the specified storage capacity and the specified capacityIncrement.

Parameters:
initialCapacity - the initial storage capacity of the vector
capacityIncrement - how much to increase the element's size by.

Vector

public Vector(int initialCapacity)
Constructs an empty vector with the specified storage capacity.

Parameters:
initialCapacity - the initial storage capacity of the vector

Vector

public Vector()
Constructs an empty vector.

Method Detail

copyInto

public final void copyInto(Object[] anArray)
Copies the elements of this vector into the specified array.

Parameters:
anArray - the array where elements get copied into

trimToSize

public final void trimToSize()
Trims the vector's capacity down to size. Use this operation to minimize the storage of a vector. Subsequent insertions will cause reallocation.


ensureCapacity

public final void ensureCapacity(int minCapacity)
Ensures that the vector has at least the specified capacity.

Parameters:
minCapacity - the desired minimum capacity

setSize

public final void setSize(int newSize)
Sets the size of the vector. If the size shrinks, the extra elements (at the end of the vector) are lost; if the size increases, the new elements are set to null.

Parameters:
newSize - the new size of the vector

capacity

public final int capacity()
Returns the current capacity of the vector.


size

public final int size()
Returns the number of elements in the vector. Note that this is not the same as the vector's capacity.


isEmpty

public final boolean isEmpty()
Returns true if the collection contains no values.


elements

public final Enumeration elements()
Returns an enumeration of the elements. Use the Enumeration methods on the returned object to fetch the elements sequentially.


contains

public final boolean contains(Object elem)
Returns true if the specified object is a value of the collection.

Parameters:
elem - the desired element

indexOf

public final int indexOf(Object elem)
Searches for the specified object, starting from the first position and returns an index to it.

Parameters:
elem - the desired element
Returns:
the index of the element, or -1 if it was not found.

indexOf

public final int indexOf(Object elem,
                         int index)
Searches for the specified object, starting at the specified position and returns an index to it.

Parameters:
elem - the desired element
index - the index where to start searching
Returns:
the index of the element, or -1 if it was not found.

lastIndexOf

public final int lastIndexOf(Object elem)
Searches backwards for the specified object, starting from the last position and returns an index to it.

Parameters:
elem - the desired element
Returns:
the index of the element, or -1 if it was not found.

lastIndexOf

public final int lastIndexOf(Object elem,
                             int index)
Searches backwards for the specified object, starting from the specified position and returns an index to it.

Parameters:
elem - the desired element
index - the index where to start searching
Returns:
the index of the element, or -1 if it was not found.

elementAt

public final Object elementAt(int index)
Returns the element at the specified index.

Parameters:
index - the index of the desired element
Throws:
ArrayIndexOutOfBoundsException - If an invalid index was given.

firstElement

public final Object firstElement()
Returns the first element of the sequence.

Throws:
NoSuchElementException - If the sequence is empty.

lastElement

public final Object lastElement()
Returns the last element of the sequence.

Throws:
NoSuchElementException - If the sequence is empty.

setElementAt

public final void setElementAt(Object obj,
                               int index)
Sets the element at the specified index to be the specified object. The previous element at that position is discarded.

Parameters:
obj - what the element is to be set to
index - the specified index
Throws:
ArrayIndexOutOfBoundsException - If the index was invalid.

removeElementAt

public final void removeElementAt(int index)
Deletes the element at the specified index. Elements with an index greater than the current index are moved down.

Parameters:
index - the element to remove
Throws:
ArrayIndexOutOfBoundsException - If the index was invalid.

insertElementAt

public final void insertElementAt(Object obj,
                                  int index)
Inserts the specified object as an element at the specified index. Elements with an index greater or equal to the current index are shifted up.

Parameters:
obj - the element to insert
index - where to insert the new element
Throws:
ArrayIndexOutOfBoundsException - If the index was invalid.

addElement

public final void addElement(Object obj)
Adds the specified object as the last element of the vector.

Parameters:
obj - the element to be added

removeElement

public final boolean removeElement(Object obj)
Removes the element from the vector. If the object occurs more than once, only the first is removed. If the object is not an element, returns false.

Parameters:
obj - the element to be removed
Returns:
true if the element was actually removed; false otherwise.

removeAllElements

public final void removeAllElements()
Removes all elements of the vector. The vector becomes empty.


clone

public Object clone()
Clones this vector. The elements are not cloned.

Overrides:
clone in class Object
Returns:
a clone of this Object.

toString

public final String toString()
Converts the vector to a string. Useful for debugging.

Overrides:
toString in class Object