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]
    }
}
 Why this works:
 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]
    }
}
 Why this is great:
 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]
    }
}
 Why this is useful:
 Why this is useful:
It’s direct, efficient, and avoids unnecessary conversions. Another handy way to convert a java array to set.