Difference between ArrayList and HashSet in Java Last Updated : 08 May, 2023 Comments Improve Suggest changes Like Article Like Report Here are couple of differences between ArrayList and HashSet. Inheritance: Implementation: Implementation : ArrayList implements List interface while HashSet implements Set interface in Java.Internal implementation: ArrayList is backed by an Array while HashSet is backed by an HashMap.Duplicates : ArrayList allows duplicate values while HashSet doesn't allow duplicates values.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)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.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.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. Syntax: ArrayList:-ArrayList list=new ArrayList();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 Comment More infoAdvertise with us Next Article Difference between ArrayList and HashSet in Java R Rajput-Ji Follow Improve Article Tags : Java Technical Scripter Difference Between Technical Scripter 2018 Java-Collections Java-ArrayList java-hashset Java-List-Programs Java-Set-Programs +5 More Practice Tags : JavaJava-Collections Similar Reads Set in Java The Set Interface is present in java.util package and extends the Collection interface. It is an unordered collection of objects in which duplicate values cannot be stored. It is an interface that implements the mathematical set. This interface adds a feature that restricts the insertion of duplicat 14 min read AbstractSet Class in Java In Java, the AbstractSet class is part of the Java Collections Framework. It provides a Skeleton implementation of the set interface, which is a collection that does not allow duplicate elements. This class is abstract, meaning it cannot be instantiated directly, but it can be extended to create a c 8 min read EnumSet in Java In Java, the EnumSet is a specialized set implementation for use with enum types. It is a part of java.util package and provides a highly optimized set for storing enum constants. The EnumSet is one of the specialized implementations of the Set interface for use with the enumeration type.It extends 9 min read Java HashSet HashSet in Java implements the Set interface of Collections Framework. It is used to store the unique elements and it doesn't maintain any specific order of elements. Can store the Null values.Uses HashMap (implementation of hash table data structure) internally.Also implements Serializable and Clon 12 min read TreeSet in Java TreeSet is one of the most important implementations of the SortedSet interface in Java that uses a Tree(red - black tree) for storage. The ordering of the elements is maintained by a set using their natural ordering whether or not an explicit comparator is provided. This must be consistent with equ 13 min read ConcurrentSkipListSet in Java In Java, the ConcurrentSkipListSet is the part of the java.util.concurrent package and provides a scalable, thread-safe alternative to TreeSet. It is a sorted set that lets multiple threads safely access and modify the set at the same time without causing issues.It is thread-safe.Elements are in sor 7 min read CopyOnWriteArraySet in Java In Java, the CopyOnWriteArraySet is the part of the java.util.concurrent package and is used to handle thread-safe operations in multi-threaded environments. It is ideal when the set is frequently read but infrequently modified. The set ensures safe access for multiple threads, as it creates a new c 6 min read Java LinkedHashSet LinkedHashSet in Java implements the Set interface of the Collection Framework. It combines the functionality of a HashSet with a LinkedList to maintain the insertion order of elements. Stores unique elements only.Maintains insertion order.Provides faster iteration compared to HashSet.Allows null el 8 min read Convert HashSet to TreeSet in Java Hashset: Hashset in Java is generally used for operations like search, insert and delete. It takes constant time for these operations on average. HashSet is faster than TreeSet. HashSet is Implemented using a hash table. TreeSet: TreeSet in Java takes O(log n) for search, insert and delete which is 3 min read Difference and similarities between HashSet, LinkedHashSet and TreeSet in Java In this article, we will learn, the difference between HashSet vs LinkedHashSet and TreeSet And similarities between LinkedHashSet and TreeSet. HashSet, LinkedHashSet, and TreeSet all implement the Set interface. So we have tried to list out the differences and similarities between HashSet, LinkedHa 6 min read Like