You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
3.6 KiB
Java

/*This Java program is to Implement Variable length array. In programming, a variable-length array (or VLA) is an array data structure of automatic storage duration whose length is determined at run time (instead of at compile time).*/
import java.util.ArrayList;
import java.util.Scanner;
public class VariableLengthArray<T>
{
private volatile int size;
private ArrayList<T> array;
public VariableLengthArray()
{
array = new ArrayList<T>();
setSize(-1);
}
public void setSize(int size)
{
this.size = size;
}
public int getSize()
{
return size;
}
public void store(int index, T value)
{
try
{
array.set(index, value);
}
catch (IndexOutOfBoundsException indexOutBounds)
{
if (index >= 0 && !(index < size))
{
throw new IndexOutOfBoundsException();
}
array.add(index, value);
}
}
public T get(int index)
{
try
{
if (index >= 0 && index < size)
return array.get(index);
else
throw new IndexOutOfBoundsException();
}
catch (IndexOutOfBoundsException indexOutBounds)
{
System.out.println("INDEX OUT OF BOUNDS : the specified index is
more than the size of the array");
}
return null;
}
public T remove(int index)
{
try
{
if (index >= 0 && index < size)
{
size--;
return array.remove(index);
}
else
throw new IndexOutOfBoundsException();
}
catch (IndexOutOfBoundsException indexOutBounds)
{
System.out.println("INDEX OUT OF BOUNDS : the specified index
is more than the size of the array");
}
return null;
}
public static void main(String... arg)
{
int size, value;
String choice;
Scanner scanner = new Scanner(System.in);
VariableLengthArray<Integer> integersArray = new VariableLengthArray<Integer>();
do
{
System.out.println("Enter the size of the array");
size = scanner.nextInt();
integersArray.setSize(size);
System.out.println("Enter the values of the array");
for (int index = 0; index < integersArray.getSize(); index++)
{
value = scanner.nextInt();
integersArray.store(index, value);
}
System.out.println("The Values entered are ");
for (int index = 0; index < integersArray.getSize(); index++)
{
System.out.print(integersArray.get(index) + "\t");
}
System.out.println("\nEnter more values ?[y/n]");
choice = scanner.next();
}
while (choice.equals("y"));
scanner.close();
}
}
/*
Enter the size of the array
5
Enter the values of the array
10 9 8 7 6
The Values entered are
10 9 8 7 6
Enter more values ?[y/n]
y
Enter the size of the array
3
Enter the values of the array
2 3 4
The Values entered are
2 3 4