How to convert List to Set (ArrayList to HashSet)

Collection object has a constructor that accept a Collection object to initial the value. Since both Set and List are extend the Collection, the conversion is quite straightforward. It’s just pass a List into Set constructor or vice verse.

Convert List to Set

Set set = new HashSet(list);
Convert Set to List

List list = new ArrayList(set);

1. List To Set Example


import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ConvertListToSet
{
    public static void main( String[] args )
    {
    	System.out.println("List values .....");
    	List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("1");
        
        for (String temp : list){
        	System.out.println(temp);
        }
        
        Set<String> set = new HashSet<String>(list);
        
        System.out.println("Set values .....");
        for (String temp : set){
        	System.out.println(temp);
        }
    }
}

Output


List values .....
1
2
3
4
1
Set values .....
3
2
1
4

After the conversion, all the duplicated values in List will just ignore, because the Set does not allow duplicated values.

2. Set To List Example


import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ConvertSetToList
{
    public static void main( String[] args )
    {
    	System.out.println("Set values .....");
        Set<String> set = new HashSet<String>();
        set.add("1");
        set.add("2");
        set.add("3");
        set.add("4");
        
        for (String temp : set){
        	System.out.println(temp);
        }
        
        System.out.println("List values .....");
    	List<String> list = new ArrayList<String>(set);
        
        for (String temp : list){
        	System.out.println(temp);
        }
    }
}

Output


Set values .....
3
2
1
4
List values .....
3
2
1
4

mkyong

Founder of Mkyong.com, passionate Java and open-source technologies. If you enjoy my tutorials, consider making a donation to these charities.

8 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Pawankumar Jajara
9 years ago

@Mkyong: Your website has been a great resource to me since college. Please include Java 8 tutorials too.

Solution with JDK 8:
List myList = mySet.stream().collect(Collectors.toList());

Anna
6 years ago

comment deleted

Ashlee
6 years ago

thanks for the info!

uh
11 years ago

Any differences of your approach with the addAll method?

renso
12 years ago

Good explanation,Thank you

kumaran
12 years ago

Nice explanation i ever seen

Bhupesh Singh Padiyar
13 years ago

List To Set Example is very help full.

tanuj pandey
13 years ago

Excellent