Industrial manufacturing
Industrial Internet of Things | Industrial materials | Equipment Maintenance and Repair | Industrial programming |
home  MfgRobots >> Industrial manufacturing >  >> Industrial programming >> Java

Java HashSet Class: Complete Guide to Operations, Methods, and Set Theory

Java HashSet Class

Explore the Java HashSet class—its creation, core methods, and practical set operations—through concise examples.

The HashSet class, part of Java’s Collections Framework, implements the Set interface and offers hash‑table based storage.

Java HashSet Class: Complete Guide to Operations, Methods, and Set Theory

Creating a HashSet

First, import java.util.HashSet:

import java.util.HashSet;

Then create a HashSet with a specific capacity and load factor:

HashSet<Integer> numbers = new HashSet<>(8, 0.75); // capacity=8, loadFactor=0.75

Parameters:

Using defaults is also common:

HashSet<Integer> numbers1 = new HashSet<>(); // capacity=16, loadFactor=0.75

HashSet Methods

Below are the most frequently used methods:

Inserting Elements

Example using add and addAll:

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> evenNumber = new HashSet<>();
        evenNumber.add(2);
        evenNumber.add(4);
        evenNumber.add(6);
        System.out.println("HashSet: " + evenNumber);

        HashSet<Integer> numbers = new HashSet<>();
        numbers.addAll(evenNumber);
        numbers.add(5);
        System.out.println("New HashSet: " + numbers);
    }
}

Output

HashSet: [2, 4, 6]
New HashSet: [2, 4, 5, 6]

Accessing Elements

Iterate with Iterator:

import java.util.HashSet;
import java.util.Iterator;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("HashSet: " + numbers);

        Iterator<Integer> iterate = numbers.iterator();
        System.out.print("HashSet using Iterator: ");
        while(iterate.hasNext()) {
            System.out.print(iterate.next() + ", ");
        }
    }
}

Output

HashSet: [2, 5, 6]
HashSet using Iterator: 2, 5, 6,

Removing Elements

Single removal and clearing the set:

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("HashSet: " + numbers);

        boolean removed = numbers.remove(5);
        System.out.println("Is 5 removed? " + removed);

        boolean cleared = numbers.removeAll(numbers);
        System.out.println("Are all elements removed? " + cleared);
    }
}

Output

HashSet: [2, 5, 6]
Is 5 removed? true
Are all elements removed? true

Set Operations

HashSet’s bulk methods support classic set theory operations.

Union

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> evenNumbers = new HashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);

        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(3);

        numbers.addAll(evenNumbers);
        System.out.println("Union is: " + numbers);
    }
}

Output

Union is: [1, 2, 3, 4]

Intersection

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);

        HashSet<Integer> evenNumbers = new HashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);

        evenNumbers.retainAll(primeNumbers);
        System.out.println("Intersection is: " + evenNumbers);
    }
}

Output

Intersection is: [2]

Difference

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        primeNumbers.add(5);

        HashSet<Integer> oddNumbers = new HashSet<>();
        oddNumbers.add(1);
        oddNumbers.add(3);
        oddNumbers.add(5);

        primeNumbers.removeAll(oddNumbers);
        System.out.println("Difference: " + primeNumbers);
    }
}

Output

Difference: [2]

Subset Check

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);

        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);

        boolean isSubset = numbers.containsAll(primeNumbers);
        System.out.println("Is primeNumbers a subset of numbers? " + isSubset);
    }
}

Output

Is primeNumbers a subset of numbers? true

Additional Methods

MethodDescription
clone()Creates a shallow copy of the set.
contains()Checks if an element exists.
isEmpty()Returns true if the set is empty.
size()Number of elements in the set.
clear()Removes all elements.

For a full list, refer to the official Java documentation.

Why Use HashSet?

When random access is required, HashSet offers O(1) performance thanks to its hash table backing. Each element’s hashCode() guarantees uniqueness, preventing duplicates. However, HashSet is not thread‑safe; external synchronization is needed for concurrent use.

Note: Because HashSet is unsynchronized, multiple threads modifying it concurrently can corrupt the data structure.

Java

  1. Mastering Java Anonymous Inner Classes: Definition, Syntax, and Practical Examples
  2. Java List Interface: Overview, Implementations, and Key Methods
  3. Java TreeMap: Master Sorted Maps with Practical Examples
  4. Mastering Java ConcurrentHashMap: Operations, Examples, and Best Practices
  5. Mastering Java TreeSet: Operations, Methods, and Practical Examples
  6. Mastering Java’s ObjectInputStream: A Comprehensive Guide
  7. Mastering Java ObjectOutputStream: Serialization, Methods, and Practical Examples
  8. Mastering Java’s PrintStream Class: Print, Println, and Printf Explained
  9. Mastering Java Reader Class: Subclasses, Methods, and Practical Example
  10. Java Numbers Class – Wrapper Classes & Inheritance Explained