Java Set Interface

Java Set Interface

Java Set Interface

In this tutorial, we will learn about the Set interface in Java and its methods.

The Set interface of the Java Collections framework gives the highlights of the mathematical set in Java. It expands the Collection interface.

In contrast to the List interface, sets can’t contain copy components.


Classes that implement Set

Since Set is an interface, we cannot create objects from it.

In order to use functionalities of the Set interface, we can use these classes:

These classes are defined in the Collections framework and implement the Set interface.


Interfaces that extend Set

The Set interface is also extended by these subinterfaces:


How to use Set?

In Java, we must import java.util.Set package in order to use Set.

// Set implementation using HashSet
Set<String> animals = new HashSet<>();

Here, we have created a Set called animals. We have used the HashSet class to implement the Set interface.


Methods of Set

The Set interface incorporates all the strategies for the Collection interface. This is on the grounds that Collection is a super interface of Set.

Some of the commonly used methods of the Collection interface that’s also available in the Set interface are:

  • add() – adds the specified element to the set
  • addAll() – adds all the elements of the specified collection to the set
  • iterator() – returns an iterator that can be used to access elements of the set sequentially
  • remove() – removes the specified element from the set
  • removeAll() – removes all the elements from the set that is present in another specified set
  • retainAll() – retains all the elements in the set that are also present in another specified set
  • clear() – removes all the elements from the set
  • size() – returns the length (number of elements) of the set
  • toArray() – returns an array containing all the elements of the set
  • contains() – returns true if the set contains the specified element
  • containsAll() – returns true if the set contains all the elements of the specified collection
  • hashCode() – returns a hash code value (address of the element in the set)

To learn about more methods of the Set interface, visit Java Set (official Java documentation).


Set Operations

The Java Set interface allows us to perform basic mathematical set operations like union, intersection, and subset.

  • Union – to get the union of two sets x and y, we can use x.addAll(y)
  • Intersection – to get the intersection of two sets x and y, we can use x.retainAll(y)
  • Subset – to check if x is a subset of y, we can use y.containsAll(x)

Implementation of the Set Interface

1. Implementing HashSet Class

import java.util.Set;
import java.util.HashSet;

class Main {

    public static void main(String[] args) {
        // Creating a set using the HashSet class
        Set<Integer> set1 = new HashSet<>();

        // Add elements to the set1
        set1.add(2);
        set1.add(3);
        System.out.println("Set1: " + set1);

        // Creating another set using the HashSet class
        Set<Integer> set2 = new HashSet<>();

        // Add elements
        set2.add(1);
        set2.add(2);
        System.out.println("Set2: " + set2);

        // Union of two sets
        set2.addAll(set1);
        System.out.println("Union is: " + set2);
    }
}

Output

Set1: [2, 3]
Set2: [1, 2]
Union is: [1, 2, 3]

2. Implementing TreeSet Class

import java.util.Set;
import java.util.TreeSet;
import java.util.Iterator;

class Main {

    public static void main(String[] args) {
        // Creating a set using the TreeSet class
        Set<Integer> numbers = new TreeSet<>();

        // Add elements to the set
        numbers.add(2);
        numbers.add(3);
        numbers.add(1);
        System.out.println("Set using TreeSet: " + numbers);

        // Access Elements using iterator()
        System.out.print("Accessing elements using iterator(): ");
        Iterator<Integer> iterate = numbers.iterator();
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }

    }
}

Output

Set using TreeSet: [1, 2, 3]
Accessing elements using iterator(): 1, 2, 3,

Now that we know what Set is, we will see its implementations in classes like EnumSet, HashSet, LinkedHashSet and TreeSet in the next tutorials.


Thanks for reading! We hope you found this tutorial helpful and we would love to hear your feedback in the Comments section below. And show us what you’ve learned by sharing your photos and creative projects with us.

Leave a Reply

Your email address will not be published. Required fields are marked *