How to convert an array to Set in Java?

What is the best way to convert an array to a Set in Java?

I have an array in Java, and I need to convert it into a Set. Of course, I could use a loop to manually add elements, but I’m looking for a cleaner and more efficient way.

I came across java.util.Arrays.asList(Object[] a), but that gives me a List, not a Set.

How can I properly convert a Java array to a Set while maintaining uniqueness and efficiency?

If you’re just getting started and want a simple way to convert a java array to set, using HashSet with Arrays.asList() is a straightforward option.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        String[] array = {"apple", "banana", "orange", "apple"};  
        Set<String> set = new HashSet<>(Arrays.asList(array));  

        System.out.println(set); // Output: [banana, orange, apple]
    }
}

:white_check_mark: Why this works:

Arrays.asList()creates aListfrom the array, and wrapping it in aHashSetensures uniqueness. This is a quick and easy way to convert ajava array to set`.

That’s a good approach, But if you’re using Java 8 or above, you can take advantage of Streams for a cleaner, more efficient solution. It handles large datasets better too.

import java.util.*;
import java.util.stream.*;

public class Main {
    public static void main(String[] args) {
        String[] array = {"apple", "banana", "orange", "apple"};  
        Set<String> set = Arrays.stream(array).collect(Collectors.toSet());

        System.out.println(set); // Output: [banana, orange, apple]
    }
}

:white_check_mark: Why this is great:

The Stream API makes the code concise and handles operations on large datasets efficiently. It’s a modern way to convert a java array to set.

Nice one, @kumari_babitaa Here’s another trick if you prefer working with the Collections utility class. You can populate a Set directly with Collections.addAll()—no need to convert the array to a List first."

import java.util.*;

public class Main {
    public static void main(String[] args) {
        String[] array = {"apple", "banana", "orange", "apple"};  
        Set<String> set = new HashSet<>();
        Collections.addAll(set, array);

        System.out.println(set); // Output: [banana, orange, apple]
    }
}

:white_check_mark: Why this is useful:

It’s direct, efficient, and avoids unnecessary conversions. Another handy way to convert a java array to set.