🔥Limited Offer: Get 50% OFFon AI & Full Stack Courses🔥
Back to Java Notes
Topic #105

Java HashSet


Java HashSet

A HashSet is a collection of elements where every element is unique.

It is part of the java.util package and implements the Set interface.


Create a HashSet

Example

import java.util.HashSet; // Import the HashSet class

HashSet<String> cars = new HashSet<String>();

Now you can use methods like add(), contains(), and remove() to manage your collection of unique elements.


Add Elements

To add elements to a HashSet, use the add() method:

Example

// Import the HashSet class
import java.util.HashSet;

public class Main {
  public static void main(String[] args) {
    HashSet<String> cars = new HashSet<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("BMW");  // Duplicate
    cars.add("Mazda");
    System.out.println(cars);
  }
}

Note: In the example above, even though "BMW" is added twice, it only appears once in the set because sets do not allow duplicate elements.


Check If an Element Exists

To check whether an element exists in a HashSet, use the contains() method:

Example

cars.contains("Mazda");

Remove an Element

To remove an element, use the remove() method:

Example

cars.remove("Volvo");

To remove all elements, use the clear() method:

Example

cars.clear();

HashSet Size

Use size() to count how many unique elements are in the set:

Example

cars.size();

Note: Duplicate values are not counted - only unique elements are included in the size.


Loop Through a HashSet

Loop through the elements of an HashSet with a for-each loop:

Example

for (String i : cars) {
  System.out.println(i);
}

Other Types

Elements in an HashSet are actually objects. In the examples above, we created elements (objects) of type "String". Remember that a String in Java is an object (not a primitive type). To use other types, such as int, you must specify an equivalent wrapper class: Integer. For other primitive types, use: Boolean for boolean, Character for char, Double for double, etc:

Example

import java.util.HashSet;

public class Main {
  public static void main(String[] args) {

    // Create a HashSet object called numbers
    HashSet<Integer> numbers = new HashSet<Integer>();

    // Add values to the set
    numbers.add(4);
    numbers.add(7);
    numbers.add(8);

    // Show which numbers between 1 and 10 are in the set
    for (int i = 1; i <= 10; i++) {
      if (numbers.contains(i)) {
        System.out.println(i + " was found in the set.");
      } else {
        System.out.println(i + " was not found in the set.");
      }
    }
  }
}

The var Keyword

From Java 10, you can use the var keyword to declare a HashSet variable without writing the type twice. The compiler figures out the type from the value you assign.

This makes code shorter, but many developers still use the full type for clarity. Since var is valid Java, you may see it in other code, so it's good to know that it exists:

Example

// Without var
HashSet<String> cars = new HashSet<String>();

// With var
var cars = new HashSet<String>();

The Set Interface

Note: Sometimes you will see both Set and HashSet in Java code, like this:

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

Set<String> cars = new HashSet<>();

This means the variable (cars) is declared as a Set (the interface), but it stores a HashSet object (the actual set). Since HashSet implements the Set interface, this is possible.

It works the same way, but some developers prefer this style because it gives them more flexibility to change the type later.


When Order Matters

In the next chapter, you will learn about TreeSet, which stores unique elements in sorted order.

Want to go beyond the notes?

Join CodingNow 2.0's Java course — live mentorship, real projects, and 100% placement support.

Enroll Now — Free Demo Available

Java HashSet – FAQs

Quick answers about learning Java HashSet in Java.

This free note from CodingNow 2.0 explains Java HashSet in Java — concept, syntax and worked code examples you can copy, run and revise before interviews.
Yes. Every Java topic on CodingNow 2.0, including Java HashSet, is 100% free with no signup required.
With focused practice, most students grasp Java HashSet in 1–3 days from these notes; pairing it with CodingNow 2.0's mentor-led course takes you to job-ready depth faster.
Use the code examples in this note, then ask doubts for free on the CodingNow 2.0 Community (/community) — expert instructors answer within 24 hours.
WhatsApp
Call NowEnroll Now