Difference Between Array vs ArrayList in Java

Difference Between Array vs ArrayList in Java: In this article, we will discuss the difference between Arrays and ArrayList in detail i.e.; Array vs ArrayList in Java

The difference will be based on the following parameters:

  • Size (fixed or variable)
  • Data type to be stored (primitive type or Object)
  • Data-type bounded using Generics
  • Adding or inserting or assigning elements
  • Length or size
  • Iterating through the elements

Lets us move on and discuss the key differences between these Array vs ArrayList in Java;

Array vs ArrayList in Java

Arrays
ArrayList
Arrays are fixed in length for example,
int arr = new int[7];
ArrayList uses a dynamic resizable/grow-able array for example,
ArrayList al = new ArrayList();
It allows storing primitive types & ObjectsIt allows storing the only Object whereas primitive types like int, float, double, etc aren’t allowed but its equivalent wrapper Object types like Integer, Float, Double, etc are allowed
While adding elements to Array, a type is bounded i.e.; it allows to store element of any specific data-type or specific class trying to add another data-type, other than declared data-type results in throwing ArrayStoreException at runtimeUsing Generics while declaring ArrayList makes it is type-bounded i.e.; if ArrayList is declared to accept only String or any specific class then adding any other type results in throwing a compile-time error
Storing elements inside Array is easy, as simple assignment operator is enough for example, intArr[0] = 10;For adding element to ArrayList, use add() or addAll()methods of java.util.Collection interface
For Array, length variable provides the length of an ArrayFor ArrayList, size() method of java.util.Collection interface can be used to determine the size of an ArrayList
For Array iteration, use the following options
  1. for-loop
  2. enhanced for-loop
For ArrayList iteration, use the following options
  1. for-loop
  2. enhanced for-loop
  3. Iterator
  4. ListIterator
  5. forEach from Java 8
Performance-wise, it always stays constant over timeadd() & get() operations nearly provide the same performance as that of ArrayBut with modifying operation like deletion will yield poor performance because it involves a lot of shifting

With capacity reaching maximum will result in again poor performance as it involves copying data from the old array into the new array

Example: Refer Arrays for detailsExample: Refer ArrayList for details

Example of Array vs ArrayList in Java

Example 1: Arrays Sort operation

PrimitveNaturalSortingOfArrays.java

package in.bench.resources.java.collection;
import java.util.Arrays;
public class PrimitveNaturalSortingOfArrays 
{
   public static void main(String[] args) 
   {
      Integer[] intArrays = {31, 83, 53, 97, 29, 7, 13,  47, 79};
      String[] strArrays = {"Karthi", "Vikram", "Vijay","Simbhu", "Suriya", "Ajith"};
      System.out.println("Before sorting: Integer Arrays\n");
      // printing Integer Arrays
      System.out.println(Arrays.toString(intArrays));
      // sorting Arrays using
      Arrays.sort(intArrays);
      System.out.println("\nAfter sorting: Integer Arrays\n");
      // printing Integer Arrays
      System.out.println(Arrays.toString(intArrays));
      System.out.println("\n\n\nBefore sorting: String Arrays\n");
      // printing Integer Arrays
      System.out.println(Arrays.toString(strArrays));
      // sorting Arrays using
      Arrays.sort(strArrays);
      System.out.println("\nAfter sorting: String Arrays\n");
      // printing Integer Arrays
      System.out.println(Arrays.toString(strArrays));
   }
}

Output:

Before sorting: Integer Arrays 
[31, 83, 53, 97, 29, 7, 13, 47, 79]
 
After sorting: Integer Arrays 
[7, 13, 29, 31, 47, 53, 79, 83, 97]
 
 Before sorting: String Arrays
[Karthi, Vikram, Vijay, Simbhu, Suriya, Ajith]
 
After sorting: String Arrays
[Ajith, Karthi, Simbhu, Suriya, Vijay, Vikram]

Example 2: ArrayList operation

ArrayListAddAndRemove.java

package in.bench.resources.java.collection; 
import java.util.ArrayList; 
public class ArrayListAddAndRemove 
{
   public static void main(String[] args) 
   {
      // creating ArrayList object of type String
      ArrayList<String> al = new ArrayList<String>();
      // adding elements to ArrayList object
      al.add("Ajith Kumar");
      al.add("Vijay Joseph"); 
      al.add("Karthi Sivakumar"); 
      al.add("Vikram Kennedy");
      al.add("Dhanusk K Raja");
      al.add("Suriya Sivakumar");
      System.out.println("Iterating ArrayList values\n");
      // Iterating using enhanced for-loop
      for(String str : al){
         System.out.println(str);
      }
      // removing element at 4th index
      al.remove(4);
      // to print all values of ArrayList
      System.out.println("\n\nArrayList values after" + " removal at 4th index postion \n\n" + al);
   }
}

Output:

Iterating ArrayList values
 
Ajith Kumar
Vijay Joseph
Karthi Sivakumar
Vikram Kennedy
Dhanusk K Raja
Suriya Sivakumar
 
ArrayList values after removal at 4th index postion 
[Ajith Kumar, Vijay Joseph, Karthi Sivakumar, Vikram Kennedy, Suriya Sivakumar]

I love open-source technologies and am very passionate about software development. I like to share my knowledge with others, especially on technology that's why I have given all the examples as simple as possible to understand for beginners. All the code posted on my blog is developed, compiled, and tested in my development environment. If you find any mistakes or bugs, Please drop an email to softwaretestingo.com@gmail.com, or You can join me on Linkedin.

Leave a Comment