Java program to convert a list to set:
This program will show you how to convert a list to set in Java. I will explain different ways with examples.
Method 1: Iterative approach to convert a list to set:
This is the simplest way to do the conversion. We will iterate over the list elements and add these to a set. The program will create an empty set at the start of the program.
import java.util.*;
public class Main {
    public static <E> Set<E> listToSet(List<E> list) {
        Set<E> resultSet = new HashSet<>();
        for (E e : list)
            resultSet.add(e);
        return resultSet;
    }
    public static void main(String[] args) {
        List<Integer> givenList = Arrays.asList(1, 2, 3, 4, 5, 6, 5, 3, 2);
        Set<Integer> resultSet = listToSet(givenList);
        System.out.println(resultSet);
    }
}In this program,
- The listToSet method is used to convert a list to set. It takes one list as its parameter, converts it to a set and returns that.
- It creates a HashSet, resultSet to hold the results.
- The for loop iterates over the elements of the list and add these to the resultSet.
 
- Since this is a generic method, we can use it with lists of different data types.
- The last line is printing the final set.
It will print the below result:
[1, 2, 3, 4, 5, 6]This is the set conversion of the list givenList. It removes the duplicates.
Method 2: By using addAll:
The addAll method adds all the elements of a collection to a set. It takes only one parameter, the collection to add.
boolean addAll(Collection c)Here, c is the collection to add to the set.
It returns one boolean value. It returns true if the set is changed due to this operation.
Exceptions:
It might throw these exceptions:
- UnsupportedOperationException: If the set doesn’t support this operation.
- ClassCastException: If the class of an element of the collection is different.
- NullPointerException: If the collection is null, if it contains null elements or if the set can’t include null elements.
- IllegalArgumentException: If it fails to add any element of the collection to the set.
Let’s change the above example to use addAll:
import java.util.*;
public class Main {
    public static <E> Set<E> listToSet(List<E> list) {
        Set<E> resultSet = new HashSet<>();
        resultSet.addAll(list);
        return resultSet;
    }
    public static void main(String[] args) {
        List<Character> givenList = Arrays.asList('a', 'e', 'i', 'o', 'u', 'e', 'i');
        Set<Character> resultSet = listToSet(givenList);
        System.out.println(resultSet);
    }
}It will print similar result.
[a, e, u, i, o]Method 3: With stream:
The stream() and collect() methods can be used to convert a list to a stream and convert it back to a set.
import java.util.*;
import java.util.stream.Collectors;
public class Main {
    public static <E> Set<E> listToSet(List<E> list) {
        return list.stream().collect(Collectors.toSet());
    }
    public static void main(String[] args) {
        List<Character> givenList = Arrays.asList('a', 'e', 'i', 'o', 'u', 'e', 'i');
        Set<Character> resultSet = listToSet(givenList);
        System.out.println(resultSet);
    }
}Method 4: By using the constructor call:
We can use the HashSet constructor and pass the list to the constructor to convert it to a set.
import java.util.*;
public class Main {
    public static <E> Set<E> listToSet(List<E> list) {
        return new HashSet<>(list);
    }
    public static void main(String[] args) {
        List<Character> givenList = Arrays.asList('a', 'e', 'i', 'o', 'u', 'e', 'i');
        Set<Character> resultSet = listToSet(givenList);
        System.out.println(resultSet);
    }
}It is simpler than the previous three examples.
You might also like:
- 5 different Java program to print a hollow square star pattern with diagonal
- Java program to find quotient and remainder in two different ways
- Java program to add, subtract, multiply and divide using switch case
- Java program to check if a number is a special number or not
- Java program to check if a number is a composite number or not
- Java next() vs nextLine() differences with examples
- Java program to check for disjoint sets in two ways

