How to Compare Two Sets in Java

The equals() method in Java’s Set interface provides a way to determine if two sets are equal. This method checks for equality based on the elements present in the sets, disregarding the order in which they appear. This article explores how to utilize the equals() method for comparing sets in Java, along with practical examples.

Understanding Set Equality

Two sets are considered equal if they contain the same elements, regardless of their order within the set. The equals() method inherently handles this comparison logic. If both sets have identical elements, the method returns true; otherwise, it returns false.

Using the equals() Method: Examples

Let’s examine how to compare two HashSet collections using the equals() method, first with String elements and then with Integer elements.

Comparing Sets of Strings

import java.util.*;

public class SetComparison {
    public static void main(String[] args) {
        // Create the first set
        Set<String> set1 = new HashSet<>();
        set1.add("A");
        set1.add("B");
        set1.add("C");
        set1.add("D");
        set1.add("E");

        System.out.println("First Set: " + set1);


        // Create the second set
        Set<String> set2 = new HashSet<>();
        set2.add("A");
        set2.add("B");
        set2.add("C");
        set2.add("D");
        set2.add("E");

        System.out.println("Second Set: " + set2);


        // Compare the sets
        boolean isEqual = set1.equals(set2);

        System.out.println("Are both sets equal? " + isEqual);
    }
}

This code will output:

First Set: [A, B, C, D, E]
Second Set: [A, B, C, D, E]
Are both sets equal? true

Comparing Sets of Integers

import java.util.*;

public class SetComparison {
    public static void main(String[] args) {
        // Create the first set
        Set<Integer> set1 = new HashSet<>();
        set1.add(10);
        set1.add(20);
        set1.add(30);
        set1.add(40);
        set1.add(50);


        System.out.println("First Set: " + set1);

        // Create the second set
        Set<Integer> set2 = new HashSet<>();
        set2.add(10);
        set2.add(20);
        set2.add(30);

        System.out.println("Second Set: " + set2);

        // Compare the sets
        boolean isEqual = set1.equals(set2);

        System.out.println("Are both sets equal? " + isEqual);
    }
}

This code will output:

First Set: [50, 20, 40, 10, 30]
Second Set: [20, 10, 30]
Are both sets equal? false

Syntax of equals()

The syntax of the equals() method for sets is as follows:

boolean equals(Object o)
  • Parameter: o represents the object to be compared with the current set.
  • Return Value: Returns true if the sets are equal; false otherwise.

Conclusion

The equals() method provides a straightforward mechanism for comparing two sets in Java. By leveraging this method, developers can efficiently determine if two sets contain the same elements, facilitating tasks like data validation and ensuring set consistency in various applications. Remember that element order is not a factor in determining set equality.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

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