106 lines
3.0 KiB
Java
106 lines
3.0 KiB
Java
/*This Java program is to Implement Vector. The elements of a vector are stored contiguously.Like all dynamic array implementations, vectors have low memory usage and good locality of reference and data cache utilization*/
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Scanner;
|
|
|
|
public class Vector<T>
|
|
{
|
|
private int capacity;
|
|
private int size;
|
|
private ArrayList<T> vector;
|
|
private static final int INCREMENT_FACTOR = 5;
|
|
|
|
public Vector(int size)
|
|
{
|
|
this.size = size;
|
|
this.capacity = size + INCREMENT_FACTOR;
|
|
vector = new ArrayList<T>();
|
|
}
|
|
|
|
public void store(int index, T value)
|
|
{
|
|
try
|
|
{
|
|
vector.set(index, value);
|
|
}
|
|
catch (IndexOutOfBoundsException indexOutBounds)
|
|
{
|
|
if (index >= 0 && (index < size))
|
|
{
|
|
vector.add(index, value);
|
|
}
|
|
if (index >= 0 && (index >= size && index < capacity))
|
|
{
|
|
vector.add(index, value);
|
|
size = index + 1;
|
|
if (size == capacity)
|
|
capacity = capacity + INCREMENT_FACTOR;
|
|
}
|
|
if (index >= capacity)
|
|
{
|
|
throw new IndexOutOfBoundsException();
|
|
}
|
|
}
|
|
}
|
|
|
|
public T get(int index)
|
|
{
|
|
try
|
|
{
|
|
return vector.get(index);
|
|
}
|
|
catch (IndexOutOfBoundsException indexOutBounds)
|
|
{
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public int getSize()
|
|
{
|
|
return size;
|
|
}
|
|
|
|
public int getCapacity()
|
|
{
|
|
return capacity;
|
|
}
|
|
|
|
public static void main(String... arg)
|
|
{
|
|
int size;
|
|
int num;
|
|
int value;
|
|
Scanner scanner = new Scanner(System.in);
|
|
System.out.println("Enter the initial size of the vector");
|
|
size = scanner.nextInt();
|
|
Vector<Integer> vector = new Vector<>(size);
|
|
System.out.println("Enter the number of elements ");
|
|
num = scanner.nextInt();
|
|
System.out.println("Enter the values");
|
|
for (int index = 0; index < num; index++)
|
|
{
|
|
value = scanner.nextInt();
|
|
vector.store(index, value);
|
|
}
|
|
System.out.println("The Entered Values are");
|
|
for (int index = 0; index < vector.getSize(); index++)
|
|
{
|
|
System.out.print(vector.get(index) + "\t");
|
|
}
|
|
System.out.println("\nTHE SIZE OF THE VECTOR IS " + vector.getSize());
|
|
System.out.println("THE CAPACITY OF THE VECTOR IS " + vector.getCapacity());
|
|
scanner.close();
|
|
}
|
|
}
|
|
|
|
/*
|
|
Enter the initial size of the vector
|
|
5
|
|
Enter the number of elements
|
|
5
|
|
Enter the values
|
|
10 9 8 7 6
|
|
The Entered Values are
|
|
10 9 8 7 6
|
|
THE SIZE OF THE VECTOR IS 5
|
|
THE CAPACITY OF THE VECTOR IS 10 |