Arraylist in Java from scratch

Article by: Manish Methani

Last Updated: October 25, 2021 at 10:04am IST
8 min 24 sec read

ArrayList is one of the type of Collection class. ArrayList implements List interface and some of the advantages ArrayList has over arrays are as follows:

â–  It can grow dynamically.

â–  It provides more powerful insertion and search mechanisms than arrays.

You cannot add an element if the array is of full length and even if you remove some elements array size will not going to shrink. Whereas, ArrayList can dynamically grow. ArrayList can add as well as remove elements from an array and it will grow and shrink as per need.

How to create empty Generic ArrayList ?

This is how you can create an Generic ArrayList.

ArrayList list1 =  new ArrayList();

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

Sr.No. Constructor & Description
1

ArrayList( )

This constructor builds an empty array list.

2

ArrayList(Collection c)

This constructor builds an array list that is initialized with the elements of the collection c.

3

ArrayList(int capacity)

This constructor builds an array list that has the specified initial capacity.

The capacity is the size of the underlying array that is used to store the elements.

The capacity grows automatically as elements are added to an array list.

Apart from the methods inherited from its parent classes, ArrayList defines the following methods −

Sr.No. Method & Description
1

void add(int index, Object element)

Inserts the specified element at the specified position index in this list.

Throws IndexOutOfBoundsException if the specified index is out of range (index < 0 || index > size()).

2

boolean add(Object o)

Appends the specified element to the end of this list.

3

boolean addAll(Collection c)

Appends all of the elements in the specified collection to the end of this list,

in the order that they are returned by the specified collection's iterator.

Throws NullPointerException, if the specified collection is null.

4

boolean addAll(int index, Collection c)

Inserts all of the elements in the specified collection into this list,

starting at the specified position. Throws NullPointerException if the specified collection is null.

5

void clear()

Removes all of the elements from this list.

6

Object clone()

Returns a shallow copy of this ArrayList.

7

boolean contains(Object o)

Returns true if this list contains the specified element. More formally,

returns true if and only if this list contains at least one element e such that (o==null ? e==null : o.equals(e)).

8

void ensureCapacity(int minCapacity)

Increases the capacity of this ArrayList instance, if necessary, to

ensure that it can hold at least the number of elements specified by the minimum capacity argument.

9

Object get(int index)

Returns the element at the specified position in this list.

Throws IndexOutOfBoundsException if the specified index is out of range (index < 0 || index >= size()).

10

int indexOf(Object o)

Returns the index in this list of the first occurrence of the specified element,

or -1 if the List does not contain this element.

11

int lastIndexOf(Object o)

Returns the index in this list of the last occurrence of the specified element, or -1 if the list does not contain this element.

12

Object remove(int index)

Removes the element at the specified position in this list.

Throws IndexOutOfBoundsException if the index out is of range (index < 0 || index >= size()).

13

protected void removeRange(int fromIndex, int toIndex)

Removes from this List all of the elements whose index is between fromIndex, inclusive and toIndex, exclusive.

14

Object set(int index, Object element)

Replaces the element at the specified position in this list with the specified element.

Throws IndexOutOfBoundsException if the specified index is out of range (index < 0 || index >= size()).

15

int size()

Returns the number of elements in this list.

16

Object[] toArray()

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

Throws NullPointerException if the specified array is null.

17

Object[] toArray(Object[] a)

Returns an array containing all of the elements in this list in the correct order;

the runtime type of the returned array is that of the specified array.

18

void trimToSize()

Trims the capacity of this ArrayList instance to be the list's current size.

Lets take a simple program to understand the concept of ArrayList

We create simple String array . We create an empty ArrayList. Add all the elements of string array to this empty ArrayList using .add(String) method . Print ArrayList using .get(index) property.

Add Elements in an ArrayList

Basic program to add elements in an ArrayList which clears the concept of adding an elements in arrayList and how to print the elements of ArrayList using for loop, while loop and for each loop.

import java.util.*;
public class JavaCollectionDemo {
  
public static void main(String[] args)
{
//String array
String[] things = {"eggs" , "hats" , "laser" , "pie"};

// Define an empty ArrayList 
ArrayList list1 =  new ArrayList();

// add array items to list1 
for(String x: things)
{
  list1.add(x);
}

//Size of ArrayList
System.out.printf("%d",list1.size());
System.out.printf("
");


//Get the items from the list1 
for (int i = 0; i//Remove element at index 2
System.out.printf("
");
list1.remove(2);

//Get the list items using for each loop 
for (String i:list1)
{
  System.out.printf("%s 	",i);
}

}
}

Output

4
eggs 	hats 	laser 	pie 	
eggs 	hats 	pie 	

Looping ArrayList using Iterator

You can also loop through ArrayList using Java Iterators also. You will learn about Java Iterators in next Article in Detail. An iterator is used to iterate through all the elements in the list. An iterator is used to go through each element of a Collection easily.

import java.util.*;
public class JavaCollectionDemo {
public static void main(String[] args)
{

//String array
String[] things = {"eggs" , "hats" , "laser" , "pie"};

// Define an empty ArrayList 
ArrayList list1 =  new ArrayList();

// add array items to list1 
for(String x: things)
{
  list1.add(x);
}

//Access elements of ArrayList using iterator
 Iterator liIterator = list1.iterator();
        while (liIterator.hasNext()) {
            String str = liIterator.next();
            System.out.printf("%s 	",str);
        }
}
}

Output :-

eggs   hats    laser   pie 	

Convert ArrayList to Array and vice-versa

To convert array to list you can use Arrays .asList method and to convert list to an array you can use List toArray.

import java.util.*;
public class JavaCollectionDemo {
public static void main(String[] args)
{
  //create an ArrayList object
   String[] things = {"eggs" , "hats" , "laser" , "pie"};
  
   //An Array to List
   ArrayList list =  new ArrayList(Arrays.asList(things));
  
  list.add("newThing");

  //Convert back list to an array
  things = list.toArray(new String[list.size()]);
  
  for(String s: things)
  {
    System.out.printf("%s ", s);  
  }
}
}

Output:

eggs hats laser pie newThing 

Explore Tech Guide:

Codzify Logo

Terms and Conditions    Cookie Policy   Refund Policy   Adsense Disclaimer

Contact: teamcodzify@gmail.com