List vs Set: Difference Between List and Set in Java

In this article, we will discuss the difference between List and Set in Java. This is one of the frequently asked questions in Java interviews for beginners. 

Difference Between List and Set in Java

1. Ordering

List:

The List interface maintains the insertion order, i.e., while displaying the elements, it will maintain the order in which they were inserted. 

Set:

The Set interface does not maintain any order. Elements are returned in no particular order.

Here is an example of a List and Set with output demonstrating the ordering:
// Java program to demonstrate ordering in List and Set
import java.util.*;

public class Main
{
    public static void main (String[] args)
    {
        // Create a List and add some elements
        List<String> listExample = new ArrayList<>();
        listExample.add("Apple");
        listExample.add("Banana");
        listExample.add("Mango");
        listExample.add("Apple");
        
        System.out.println("List elements:");
        for(String element : listExample) {
            System.out.println(element);
        }
        // Output:
        // Apple
        // Banana
        // Mango
        // Apple

        // Create a Set and add some elements
        Set<String> setExample = new HashSet<>();
        setExample.add("Apple");
        setExample.add("Banana");
        setExample.add("Mango");
        setExample.add("Apple");
        
        System.out.println("\nSet elements:");
        for(String element : setExample) {
            System.out.println(element);
        }
        // Output (the order may vary as Set doesn't maintain any order):
        // Banana
        // Apple
        // Mango
    }
}

In this example, the List listExample maintains the order of insertion when the elements are printed. The Set setExample, on the other hand, does not maintain any particular order of the elements.

2. Duplicate Elements

List: 

The List allows duplicate elements. The same element can be inserted multiple times in different positions. 

Set: 

Sets don’t allow duplicate elements. If you try to insert a duplicate element in Set, it would overwrite the existing value. 

3. Null elements

List: 

The List can contain any number of null elements. 

Set: 

In Set, null can be inserted only once. 

4. Positional Access

List: 

You can access or remove elements from the List by using the index.

Set: 

In Set, you can't access or remove elements using an index due to the non-indexed nature of Set.

5. Implementations

List interface implementations: 

Set interface implementations: 

Comments