Dynamic Array in Java
Arrays are linear data structures, and similar types of elements will be inserted in continuous memory locations. Now as we know there is an issue with arrays that size needs to be specified at the time of declaration or taken from the user in Java.
Hence, there arise dynamic arrays in Java in which entries can be added as the array increases its size as it is full. The size of the new array increases to double the size of the original array. Now all elements are retained in a new array which is in the specified array domain size and the rest are added after them in the newly formed array. This array keeps on growing dynamically.

Steps to Create Dynamic Array in Java
Below are the Steps to create dynamic array in Java:
- Create a Array with some size n which will be the default size of array.
- Insert the elements in Array
- If the number of elements inserted in array becomes greater than or equal to size of array
- True: then create another array with double size. Also, update the values of new array with the double default size.
- False: then continue till the condition arise
Implementation: This concept can be implemented using new user defined class so to use the methods and properties together.
// Java Program to Implement a Dynamic Array
// User Defined Array
class Array {
private int arr[];
private int count;
// Method to return length of array
public Array(int size){
arr = new int[size];
}
// Method to print array
public void printArray(){
for (int i = 0; i < count; i++)
System.out.print(arr[i] + " ");
}
// Method to insert element in array
public void insert(int ele){
if (arr.length == count) {
// Creating a new array double the size
// of array declared above
int newArr[] = new int[2 * count];
for (int i = 0; i < count; i++)
newArr[i] = arr[i];
// Assigning new array to original array
arr = newArr;
}
arr[count++] = ele;
}
}
public class Main {
public static void main(String[] args){
// Creating object of Array(user-defined) class
Array numbers = new Array(3);
// Adding elements to array
numbers.insert(10);
numbers.insert(20);
numbers.insert(30);
// Extra element exceeding array size
numbers.insert(50);
// Calling printArray() method
numbers.printArray();
}
}
Output
10 20 30 50
Note: There is a major flaw in dynamic array implementation is that most of the time array size required is much more than needed.