What is the easiest way to convert a List to a Set in Java?



There are couple of easy ways to convert a list to a set. If a new set to be created then using constructor is the easiest one. Just pass the list to the constructor and resultant set will contains all the unique elements of the list.

Set<String> set = new HashSet<>(list);

In case of existing set, we can use set.addAll() method to add all the elements of the list to the set.

set.addAll(list);

Another interesting way is with the use of streams, we can get a set from a list.

set = list.stream().collect(Collectors.toSet());

Example

Following is the example showing the list to set conversion via multiple ways −

package com.tutorialspoint;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class CollectionsDemo {
   public static void main(String[] args) {
      List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,3,3,4,5));
      System.out.println("List: " + list);
      Set<Integer> set = new HashSet<>(list);
      System.out.println("Set: " + set);
      set = new HashSet<>();
      set.addAll(list);
      System.out.println("Set: " + set);
      set = new HashSet<>();
      set = list.stream().collect(Collectors.toSet());
      System.out.println("Set: " + set);
   }
}

Output

This will produce the following result −

List: [1, 2, 3, 3, 3, 4, 5]
Set: [1, 2, 3, 4, 5]
Set: [1, 2, 3, 4, 5]
Set: [1, 2, 3, 4, 5]

Advertisements