Learning Resources
 

Vectors

java.util

Class Vector

  • All Implemented Interfaces:
    Serializable, Cloneable, Iterable, Collection, List, RandomAccess
    Direct Known Subclasses:
    Stack


    public class Vector
    extends AbstractList
    implements List, RandomAccess, Cloneable, Serializable
    The Vectorclass 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 Vectorcan grow or shrink as needed to accommodate adding and removing items after the Vectorhas been created.

    Each vector tries to optimize storage management by maintaining a capacityand a capacityIncrement. The capacityis 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 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 of Vector.

    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 this Vectorobject.
      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 size 10and 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
      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(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.
      boolean addAll(int index, CollectionE> 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)
      Returns trueif 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 index 0) 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 from index, 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 specified index.
      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 from index, 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 between fromIndex, inclusive, and toIndex, 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 specified indexof 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 this Vectorobject. Components elementData[0]through elementData[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 size 10and 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 index kin this vector is copied into component kof anArray.
        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 field elementData, 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 field elementData, with a larger one. The size of the new data array will be the old size plus capacityIncrement, unless the value of capacityIncrementis 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 than minCapacity, then the new capacity will be minCapacity.

        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, new nullitems are added to the end of the vector. If the new size is less than the current size, all components at index newSizeand 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:
        true if 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 returned Enumerationobject will generate all items in this vector. The first item generated is the item at index 0, then the item at index 1, and so on.
        Returns:
        an enumeration of the components of this vector
        See Also:
        Iterator
      • contains

        public boolean contains(Object o)
        Returns trueif this vector contains the specified element. More formally, returns trueif and only if this vector contains at least one element esuch 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:
        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 index isuch 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 from index, or returns -1 if the element is not found. More formally, returns the lowest index isuch 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 index isuch 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 from index, or returns -1 if the element is not found. More formally, returns the highest index isuch 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