Open In App

Difference between ArrayList and HashSet in Java

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Here are couple of differences between ArrayList and HashSet.

  1. Inheritance:
  2. Implementation: Implementation : ArrayList implements List interface while HashSet implements Set interface in Java.
  3. Internal implementation: ArrayList is backed by an Array while HashSet is backed by an HashMap.
  4. Duplicates : ArrayList allows duplicate values while HashSet doesn’t allow duplicates values.
  5. Constructor : ArrayList have three constructor which are ArrayList(), ArrayList(int capacity) ArrayList(int Collection c) while HashSet have four constructor which are HashSet(), HashSet(int capacity), HashSet(Collection c) and HashSet(int capacity, float loadFactor)
  6. Ordering : ArrayList maintains the order of the object in which they are inserted while HashSet is an unordered collection and doesn’t maintain any order.
  7. Indexing : ArrayList is index based we can retrieve object by calling get(index) method or remove objects by calling remove(index) method while HashSet is completely object based. HashSet also does not provide get() method.
  8. Null Object: ArrayList not apply any restriction, we can add any number of null value while HashSet allow one null value.

      9. Basic Operation’s Time complexity :-  

          9.1 ArrayList common operation’s time complexity

         add() – takes O(1) time; 
         get() – it takes constant time O(1);
         remove() –it takes linear time complexity O(n) . It iterate the entire array to find the element qualifying for removal.
        contains() – It also take linear time complexity O(n).

         9.2 Set common operation’s time complexity

         For HashSet, the add(), remove() and contains() operations cost constant O(1) time thanks to the internal HashMap implementation.

  1. Syntax: ArrayList:-
ArrayList list=new ArrayList();
  1. HashSet:-
HashSet set=new HashSet();

ArrayList example 

JAVA




// Java program to demonstrate working of ArrayList in Java
 
import java.io.*;
import java.util.*;
 
class ArrayListTest {
 
    public static void main(String[] args)
        throws IOException
    {
        // size of ArrayList
        int n = 5;
 
        // declaring ArrayList with initial size n
        List<Integer> al = new ArrayList<>(n);
 
        // Appending the new element at the end of the list
        for (int i = 1; i <= n; i++) {
            al.add(i);
        }
 
        // Printing elements
        System.out.println(al);
 
        // Remove element at index 3
        al.remove(3);
 
        // Displaying ArrayList after deletion
        System.out.println(al);
 
        // Printing elements one by one
        for (int i = 0; i < al.size(); i++) {
            System.out.print(al.get(i) + " ");
        }
    }
}


Output:

[1, 2, 3, 4, 5]
[1, 2, 3, 5]
1 2 3 5 

HashSet example 

JAVA




// Java program to demonstrate working of HashSet
 
import java.util.HashSet;
import java.util.Set;
 
class HashSetDemo {
 
    public static void main(String[] args)
    {
 
        // Create a HashSet
        Set<Integer> hs = new HashSet<>();
 
        // add elements to HashSet
        hs.add(1);
        hs.add(2);
        hs.add(3);
        hs.add(4);
 
        // Duplicate removed
        hs.add(4);
 
        // Displaying HashSet elements
        for (Integer temp : hs) {
            System.out.print(temp + " ");
        }
    }
}


Output:

1 2 3 4 


Last Updated : 08 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads