How to implement our own Dynamic Array class in Java? Last Updated : 23 Apr, 2020 Summarize Comments Improve Suggest changes Share Like Article Like Report Given task is to implement a class in Java which behaves just like the Dynamic array using ArrayList. ArrayList is same as dynamic arrays with the ability to resize itself automatically when an element is inserted or deleted, with their storage being handled automatically by the container. ArrayList elements are placed in contiguous storage so that they can be accessed and traversed using iterators. In ArrayList, data is inserted at the end. Inserting at the end takes differential time, as sometimes there may be a need of extending the array. Removing the last element takes only constant time because no resizing happens. Inserting and erasing at the beginning or in the middle is linear in time. Functions to be implemented in the Dynamic array class: Certain functions associated with the ArrayList that we will implement are: void push(int data): This function takes one element and inserts it at the last. Amortized time complexity is O(1). void push(int data, int index): It inserts data at the specified index. Time complexity is O(1). int get(int index): It is used to get the element at the specified index. Time complexity is O(1). void pop(): It deletes the last element. Time complexity is O(1). int size(): It returns the size of the ArrayList i.e, number of elements in the ArrayList. Time complexity is O(1). int getcapacity(): It returns the capacity of the ArrayList. Time complexity is O(1). void print(): It is used to print array elements. Time complexity is O(N), where N is the size of the ArrayList. Implementation of the Dynamic array class: Below is the implementation of our own ArrayList class. Java // Java program to implement // our own Dynamic Array class import java.util.*; // Self implementation of // the ArrayList Class in Java class ArrayListClass { // arr is the array which stores // our ArrayList elements private int arr[]; // capacity is the total storage // capacity of the ArrayList private int capacity; // current is the number of elements // currently present in the ArrayList private int current; // Default constructor to initialise // an initial capacity of 1 element and // allocating storage using dynamic allocation public ArrayListClass() { arr = new int[1]; capacity = 1; current = 0; } // Function to add an element at the last public void push(int data) { // if the number of elements // is equal to the capacity, // that means we don't have space // to accommodate more elements. // We need to double the capacity if (current == capacity) { int temp[] = new int[2 * capacity]; // copying old array elements // to new array for (int i = 0; i < capacity; i++) temp[i] = arr[i]; capacity *= 2; arr = temp; } // Inserting data arr[current] = data; current++; } // function to add element at any index void push(int data, int index) { // if index is equal to capacity // then this function is same // as push defined above if (index == capacity) push(data); else arr[index] = data; } // Function to extract // element at any index int get(int index) { // if index is within the range if (index < current) return arr[index]; // if index is outside the range return -1; } // function to delete last element void pop() { current--; } // function to get size // of the ArrayList int size() { return current; } // function to get capacity // of the ArrayList int getcapacity() { return capacity; } // function to print ArrayList elements void print() { for (int i = 0; i < current; i++) { System.out.print(arr[i] + " "); } System.out.println(); } // Driver program to check ArrayListClass public static void main(String args[]) { ArrayListClass v = new ArrayListClass(); v.push(10); v.push(20); v.push(30); v.push(40); v.push(50); System.out.println("ArrayList size: " + v.size()); System.out.println( "ArrayList capacity: " + v.getcapacity()); System.out.println( "ArrayList elements: "); v.print(); v.push(100, 1); System.out.println( "\nAfter updating 1st index"); System.out.println( "ArrayList elements: "); v.print(); System.out.println( "Element at 1st index: " + v.get(1)); v.pop(); System.out.println( "\nAfter deleting the" + " last element"); System.out.println( "ArrayList size: " + v.size()); System.out.println( "ArrayList capacity: " + v.getcapacity()); System.out.println( "ArrayList elements: "); v.print(); } } Output: ArrayList size: 5 ArrayList capacity: 8 ArrayList elements: 10 20 30 40 50 After updating 1st index ArrayList elements: 10 100 30 40 50 Element at 1st index: 100 After deleting the last element ArrayList size: 4 ArrayList capacity: 8 ArrayList elements: 10 100 30 40 Comment More infoAdvertise with us Next Article Arrays asList() Method in Java with Examples M mv15 Follow Improve Article Tags : Java Java-ArrayList Java-Array-Programs Practice Tags : Java Similar Reads Dynamic Class Data Sharing in Java with Example In Java, a class is a template that defines the properties and behaviors of objects. Objects are instances of a class and can be created using the new keyword. A class typically consists of fields (also known as instance variables) and methods. Fields are variables that store data, and methods are b 3 min read How to implement Stack and Queue using ArrayDeque in Java ArrayDeque in Java The ArrayDeque in Java provides a way to apply resizable-array in addition to the implementation of the Deque interface. It is also known as Array Double Ended Queue or Array Deck. This is a special kind of array that grows and allows users to add or remove an element from both si 6 min read How to Convert Vector to Array in Java? As we all know an array is a group of liked-typed variables that are referred to by a common name while on the other hand vectors basically fall in legacy classes but now it is fully compatible with collections. It is found in java.util package and implement the List interface which gives a superior 3 min read Arrays asList() Method in Java with Examples The Arrays.asList() method in Java is part of the java.util.Arrays class, which is used to convert an array into a fixed-size list. This method acts as a bridge between array-based and collection-based APIs, in combination with Collection.toArray(). Example:Below is a simple example of the Arrays as 4 min read How to Return an Array in Java? An array is a data structure that consists of a group of elements of the same data type such that each element of the array can be identified by a single array index or key. The elements of the array are stored in a way that the address of any of the elements can be calculated using the location of 5 min read How to Declare an Array in Java? In Java programming, arrays are one of the most essential data structures used to store multiple values of the same type in a single variable. Understanding how to declare an array in Java is very important. In this article, we will cover everything about array declaration, including the syntax, dif 3 min read Like