Understanding Vectors in Java: A Comprehensive Guide

Rumman Ansari   Software Engineer   2024-07-04 04:49:26   7541  Share
Subject Syllabus DetailsSubject Details 2 Questions
☰ TContent
☰Fullscreen

Table of Content:

Vectors

We know that Arrays are very useful when there is a need to use number of variables But There is a problem with Array they use only single data type or The Elements of array are always Same type For Avoiding this Problem Vectors are used.

 

These are also Collection of elements those are object data type For Using Vectors we have to import java.util package These are also Called as dynamic Array of object data type .

 

But Always Remember vectors doesn’t support primitives data types like int, float, char etc. For Creating a Vector, Vector Class will be used which is reside in java’s utility package

Vector implements a dynamic array. It is similar to ArrayList, but with two differences ?

  • Vector is synchronized.

  • Vector contains many legacy methods that are not part of the collections framework.

Vector proves to be very useful if you don't know the size of the array in advance or you just need one that can change sizes over the lifetime of a program.

Three ways to create vector class object:

Method 1:

Vector vect = new Vector();

It creates an empty Vector with the default initial capacity of 10. It means the Vector will be re-sized when the 11th elements need to be inserted into the Vector. Note: By default, vector doubles its size. i.e., In this case, the Vector size would remain 10 till 10 insertions and once we try to insert the 11th element It would become 20 (double of default capacity 10).

Method 2:
Syntax:
Vector object= new Vector(int initialCapacity)

Vector vec = new Vector(3);

It will create a Vector of the initial capacity of 3.

Method 3:
Syntax:

Vector object= new vector(int initialcapacity, capacityIncrement)

Example:

Vector vec= new Vector(4, 6)

Here we have provided two arguments. The initial capacity is 4 and capacityIncrement is 6. It means upon insertion of 5th element the size would be 10 (4+6) and on 11th insertion it would be 16(10+6).

Complete Example of Vector in Java:

/*
  Simple Java Vector Example
  This Java Example shows how to create an object of Java Vector. It also
  shows how to add elements to Vector and how get the same from Vector.
*/

import java.util.Iterator;
import java.util.Vector;

public class SimpleVectorExample {

  public static void main(String[] args) {

    //create a Vector object
    Vector v = new Vector();

    /*
       Add elements to Vector using
       boolean add(Object o) method. It returns true as a general behavior
       of Collection.add method. The specified object is appended at the end
       of the Vector.
    */
    v.add("1");
    v.add("2");
    v.add("3");

    /*
      Use get method of Java Vector class to display elements of Vector.
      Object get(int index) returns an element at the specified index in
      the Vector
    */
    System.out.println("Getting elements of Vector");
    System.out.println(v.get(0));
    System.out.println(v.get(1));
    System.out.println(v.get(2));
  }
}
 

Output

Getting elements of Vector
1
2
3
Press any key to continue . . .
 

Complete Example of Vector in Java:

 import java.util.*;

public class VectorExample {

   public static void main(String args[]) {
      /* Vector of initial capacity(size) of 2 */
      Vector vec = new Vector(2);

      /* Adding elements to a vector*/
      vec.addElement("Apple");
      vec.addElement("Orange");
      vec.addElement("Mango");
      vec.addElement("Fig");

      /* check size and capacityIncrement*/
      System.out.println("Size is: "+vec.size());
      System.out.println("Default capacity increment is: "+vec.capacity());

      vec.addElement("fruit1");
      vec.addElement("fruit2");
      vec.addElement("fruit3");

      /*size and capacityIncrement after two insertions*/
      System.out.println("Size after addition: "+vec.size());
      System.out.println("Capacity after increment is: "+vec.capacity());

      /*Display Vector elements*/
      Enumeration en = vec.elements();
      System.out.println("\nElements are:");
      while(en.hasMoreElements())
         System.out.print(en.nextElement() + " ");
   }
}
 

Output

 Size is: 4
Default capacity increment is: 4
Size after addition: 7
Capacity after increment is: 8

Elements are:
Apple Orange Mango Fig fruit1 fruit2 fruit3 Press any key to continue . . .
 

Difference between ArrayList and Vector

ArrayList Vector
1) ArrayList is not synchronized. Vector is synchronized.
2) ArrayList increments 50% of current array size if number of element exceeds from its capacity. Vector increments 100% means doubles the array size if total number of element exceeds than its capacity.
3) ArrayList is not a legacy class, it is introduced in JDK 1.2. Vector is a legacy class.
4) ArrayList is fast because it is non-synchronized. Vector is slow because it is synchronized i.e. in multithreading environment, it will hold the other threads in runnable or non-runnable state until current thread releases the lock of object.
5) ArrayList uses Iterator interface to traverse the elements. Vector uses Enumeration interface to traverse the elements. But it can use Iterator also.

Following is the list of constructors provided by the vector class.

Sr.No. Constructor & Description
1

Vector( )

This constructor creates a default vector, which has an initial size of 10.

2

Vector(int size)

This constructor accepts an argument that equals to the required size, and creates a vector whose initial capacity is specified by size.

3

Vector(int size, int incr)

This constructor creates a vector whose initial capacity is specified by size and whose increment is specified by incr. The increment specifies the number of elements to allocate each time that a vector is resized upward.

4

Vector(Collection c)

This constructor creates a vector that contains the elements of collection c.

Apart from the methods inherited from its parent classes, Vector defines the following methods ?

Sr.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 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.

4

boolean addAll(int index, Collection c)

Inserts all of the elements in 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 one.

6

int capacity()

Returns the current capacity of this vector.

7

void clear()

Removes all of the elements from this vector.

8

Object clone()

Returns a clone of this vector.

9

boolean contains(Object elem)

Tests if the specified object is a component in this vector.

10

boolean containsAll(Collection c)

Returns true if this vector contains all of the 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)

Searches for the first occurence of the given argument, testing for equality using the equals method.

20

int indexOf(Object elem, int index)

Searches for the first occurence of the given argument, beginning the search at index, and testing for equality using the equals method.

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 if this vector has no components.

23

Object lastElement()

Returns the last component of the vector.

24

int lastIndexOf(Object elem)

Returns the index of the last occurrence of the specified object in this vector.

25

int lastIndexOf(Object elem, int index)

Searches backwards for the specified object, starting from the specified index, and returns an index to it.

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, it is unchanged.

28

boolean removeAll(Collection c)

Removes from this vector all of its elements that are 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)

removeElementAt(int index).

32

protected void removeRange(int fromIndex, int toIndex)

Removes from this List all of the 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 be 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 view of the portion of this List between fromIndex, inclusive, and toIndex, exclusive.

39

Object[] toArray()

Returns an array containing all of the elements in this vector in the correct order.

40

Object[] toArray(Object[] 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.

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 the vector's current size.