bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/Java/Java Data Structures
Java•Java Data Structures

Java HashSet

Native lesson simulator

Hash map lookup

Hash the key, jump to a bucket, then compare entries there.

Ada -> bucket 20Cy:21Bo:22Ada:3Dee:33

Ada hashes to bucket 2; lookup only scans entries in that bucket.

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind Java HashSet?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

import java.util.HashSet; // Import the HashSet ___
3Order

Put the learning moves in the order that makes the concept easiest to apply.

When Order Matters
Loop Through a HashSet
Check If an Element Exists

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

Create a HashSet object called cars that will store strings:

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:

cars.contains("Mazda");

Remove an Element

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

cars.remove("Volvo");

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

cars.clear();

HashSet Size

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

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:

HashSet

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:

// 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 .

Previous

Java Set

Next

Java TreeSet