We’ll dive into Java built-in methods since Java 5 and before followed by new mechanism introduced since Java 8. We’ll also see a custom utility method and finally explore the features provided by 3rd party collection libraries, Google Guava in particular.

2.3. Using Collections Utility Method Since Java 5

The Java’s Collections utility class provides the method named singleton to create a Set with a single element. The Set instance created with the singleton method is immutable meaning that we cannot add more values to it.

There are situations especially in unit testing where we need to create a Set with a single value:

Set<String> set = Collections.singleton("a");

3. Defining Custom Utility Method

We can define a static final method as below. The method accepts variable arguments.

Using Collections.addAll which accepts the collection object and an array of values is best among others because of the low overhead of copying values.

5. Using 3rd Party Collection Library

There are multiple 3rd party collections libraries including Google Guava, Apache Commons Collections, and Eclipse Collections just to name a few.

These libraries provide convenient utility methods to initialize collections like Set. Since Google Guava is one of the most commonly used here we have an example from it. The Guava has convenient methods for mutable and immutable Set objects:

Set<String> set = Sets.newHashSet("a", "b", "c");

Similarly, Guava has a utility class for creating immutable Set instances, as we can see in the example below.

Set<String> set = ImmutableSet.of("a", "b", "c");

6. Conclusion

In conclusion, we saw multiple ways in which a HashSet can be initialized while it is constructed. These approaches don’t necessarily cover all possible ways by any means. It was just an attempt to showcase most common ways.

One such approach not covered here could be using the object builder to construct a Set.