Java Vector Class

The Vector class implements a dynamic array. It is similar to ArrayList, but the two are different:

FeaturesVectorArrayList
SynchronizationSynchronized (thread-safe)Not synchronized
PerformanceSlowerFaster
Capacity incrementCan be specifiedFixed (50%)
Iteratorfail-fastfail-fast
Version introducedJava 1.0Java 1.2

Features:

  1. Synchronized: Vector is thread-safe, all methods are synchronized

  2. Dynamic expansion: It automatically grows when the number of elements exceeds the current capacity

  3. Legacy class: Although it is still usable, ArrayList is generally recommended

  4. Implements the RandomAccess interface: Supports fast random access

Vector is mainly used when you do not know the size of the array in advance, or when you simply need an array whose size can change.

The Vector class supports 4 constructor methods.

The first constructor creates a default vector with a default size of 10:

Vector()

The second constructor creates a vector of a specified size.

Vector(int size)

The third constructor creates a vector of a specified size, and the increment is specified by incr. The increment indicates the number of elements by which the vector grows each time.

Vector(int size,int incr)

The fourth constructor creates a vector containing the elements of collection c:

Vector(Collection c)

In addition to the methods inherited from the parent class, Vector also defines the following methods:

Common Operations

Example

// Add elements
boolean add(E e) // Add element to the end
void add(int index, E element) // Insert element at the specified position
boolean addAll(Collection<? extends E> c) // Add all elements from the collection

// Get elements
E get(int index) // Get the element at the specified position
E firstElement() // Get the first element
E lastElement() // Get the last element

// Remove elements
E remove(int index) // Remove and return the element at the specified position
boolean remove(Object o) // Remove the first occurrence of the specified element
void clear() // Remove all elements

// Other operations
int size() // Return the number of elements
int capacity() // Return the current capacity
void ensureCapacity(int minCapacity) // Ensure at least the minimum capacity
void trimToSize() // Adjust the capacity to the current size
boolean contains(Object o) // Check whether it contains the specified element
int indexOf(Object o) // Return the index of the first occurrence of the element
No. Method Description
1 void add(int index, Object element)
Inserts the specified element at the specified position in this vector.
2 boolean add(Object o) 
Appends the specified element to the end of this vector.
3 boolean addAll(Collection c) 
Appends all elements in the specified Collection to the end of this vector, in the order returned by the specified collection's iterator.
4 boolean addAll(int index, Collection c) 
Inserts all elements in the specified Collection into this vector at the specified position.
5 void addElement(Object obj) 
Adds the specified component to the end of this vector, increasing its size by 1.
6 int capacity() 
Returns the current capacity of this vector.
7 void clear() 
Removes all elements from this vector.
8 Object clone() 
Returns a copy of this vector.
9 boolean contains(Object elem) 
Returns true if this vector contains the specified element.
10 boolean containsAll(Collection c) 
Returns true if this vector contains all elements in the specified Collection.
11 void copyInto(Object[] anArray) 
Copies the components of this vector into the specified array.
12 Object elementAt(int index) 
Returns the component at the specified index.
13 Enumeration elements() 
Returns an enumeration of the components of this vector.
14 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.
15 boolean equals(Object o) 
Compares the specified object with this vector for equality.
16 Object firstElement() 
Returns the first component (the item at index 0) of this vector.
17 Object get(int index) 
Returns the element at the specified position in this vector.
18 int hashCode() 
Returns the hash code value for this vector.
19 int indexOf(Object elem) 
Returns the index of the first occurrence of the specified element in this vector, or -1 if this vector does not contain the element.
20 int indexOf(Object elem, int index) 
Returns the index of the first occurrence of the specified element in this vector, searching forward from index, or -1 if the element is not found.
21 void insertElementAt(Object obj, int index) 
Inserts the specified object as a component in this vector at the specified index.
22 boolean isEmpty() 
Tests whether this vector has no components.
23 Object lastElement() 
Returns the last component of this vector.
24 int lastIndexOf(Object elem) 
Returns the index of the last occurrence of the specified element in this vector; returns -1 if this vector does not contain the element.
25 int lastIndexOf(Object elem, int index) 
Returns the index of the last occurrence of the specified element in this vector, searching backward from index, or -1 if the element is not found.
26 Object remove(int index) 
Removes the element at the specified position in this vector.
27 boolean remove(Object o) 
Removes the first occurrence of the specified element in this vector; if the vector does not contain the element, the element is unchanged.
28 boolean removeAll(Collection c) 
Removes from this vector all elements contained in the specified Collection.
29 void removeAllElements() 
Removes all components from this vector and sets its size to zero.
30 boolean removeElement(Object obj) 
Removes the first (lowest-indexed) occurrence of the argument from this vector.
31 void removeElementAt(int index) 
Deletes the component at the specified index.
32 protected void removeRange(int fromIndex, int toIndex)
Removes from this List all elements whose index is between fromIndex (inclusive) and toIndex (exclusive).
33 boolean retainAll(Collection c) 
Retains only the elements in this vector that are contained in the specified Collection.
34 Object set(int index, Object element)
Replaces the element at the specified position in this vector with the specified element.
35 void setElementAt(Object obj, int index) 
Sets the component at the specified index of this vector to the specified object.
36 void setSize(int newSize) 
Sets the size of this vector.
37 int size() 
Returns the number of components in this vector.
38 List subList(int fromIndex, int toIndex) 
Returns a part view of this List, with elements ranging from fromIndex (inclusive) to toIndex (exclusive).
39 Object[] toArray()
Returns an array containing all elements of this vector in the proper order.
40 Object[] toArray(Object[] a) 
Returns an array containing all elements of this vector in the proper order; the runtime type of the returned array is that of the specified array.
41 String toString() 
Returns a string representation of this vector, containing the String representation of each element.
42 void trimToSize() 
Trims the capacity of this vector to be equal to the vector's current size.

Example

The following program illustrates several methods supported by this collection:

Example

import java.util.*;

public class VectorDemo {

   public static void main(String args[]) {
      // initial size is 3, increment is 2
      Vector v = new Vector(3, 2);
      System.out.println("Initial size: " + v.size());
      System.out.println("Initial capacity: " +
      v.capacity());
      v.addElement(new Integer(1));
      v.addElement(new Integer(2));
      v.addElement(new Integer(3));
      v.addElement(new Integer(4));
      System.out.println("Capacity after four additions: " +
          v.capacity());

      v.addElement(new Double(5.45));
      System.out.println("Current capacity: " +
      v.capacity());
      v.addElement(new Double(6.08));
      v.addElement(new Integer(7));
      System.out.println("Current capacity: " +
      v.capacity());
      v.addElement(new Float(9.4));
      v.addElement(new Integer(10));
      System.out.println("Current capacity: " +
      v.capacity());
      v.addElement(new Integer(11));
      v.addElement(new Integer(12));
      System.out.println("First element: " +
         (Integer)v.firstElement());
      System.out.println("Last element: " +
         (Integer)v.lastElement());
      if(v.contains(new Integer(3)))
         System.out.println("Vector contains 3.");
      // enumerate the elements in the vector.
      Enumeration vEnum = v.elements();
      System.out.println("\nElements in vector:");
      while(vEnum.hasMoreElements())
         System.out.print(vEnum.nextElement() + " ");
      System.out.println();
   }
}

The compilation and running result of the above example is as follows:

Initial size: 0
Initial capacity: 3
Capacity after four additions: 5
Current capacity: 5
Current capacity: 7
Current capacity: 9
First element: 1
Last element: 12
Vector contains 3.

Elements in vector:
1 2 3 4 5.45 6.08 7 9.4 10 11 12

Java 数据结构Java Data Structures

Other Extensions