HashSet

Published Apr 22, 2022
Contribute to Docs

A HashSet is used to store an unordered set of unique items of a given data type.

Syntax

import java.util.HashSet;
HashSet<DataType> h = new HashSet<DataType>();

Where h is a HashSet created with the new keyword and DataType is the data type that will be stored in it. HashSet is a member of the java.util package which must be imported first.

Adding Items

New items can be added to the HashSet with the .add() method.

Syntax

hashset.add(item)

Where item is the item to be added, which should match the data type hashset was defined with.

Example

import java.util.HashSet;
public class Main {
public static HashSet<String> SetupHashSet() {
HashSet<String> result = new HashSet<String>();
result.add("Cabbage");
result.add("Pizza");
result.add("Sausage");
result.add("Potatoes");
result.add("Salad");
return result;
}
public static void main(String[] args) {
HashSet<String> food = SetupHashSet();
food.add("Sausage");
System.out.println(food);
}
}

This will output:

[Pizza, Sausage, Potatoes, Cabbage, Salad]

Note: Members of the HashSet must be unique, so adding the same item twice will have no effect, like in the example above where “Sausage” is added a second time. Also, the HashSet items have no particular order, regardless of when they were inserted.

Removing Items

Items can be removed from the HashSet with the .remove() method.

Syntax

hashset.remove(item)

Where item is the item to be removed from hashset. If item is not part of hashset the method has no effect.

Example

Changing the .main() method of the above example:

public static void main(String[] args) {
HashSet<String> food = SetupHashSet();
food.remove("Sausage");
System.out.println(food);
}

This will output:

[Pizza, Potatoes, Cabbage, Salad]

Checking For Existence of an Item

The HashSet can be checked if it contains a particular item with the .contains() method.

Syntax

boolean result = hashset.contains(item);

Where result will be true if hashset contains item as one of its members.

Example

Changing the .main() method of the above example:

public static void main(String[] args) {
HashSet<String> food = SetupHashSet();
if (food.contains("Nuts")) {
System.out.println("Allergen warning!");
} else {
System.out.println("Safe to eat.");
}
}

This will output:

Safe to eat.

Returning the Size of a HashSet

The number of items in a HashSet can be returned with the .size() method.

Syntax

int ItemCount = hashset.size()

Where ItemCount is the number of items in hashset.

Example

Changing the .main() method of the above example:

public static void main(String[] args) {
HashSet<String> food = SetupHashSet();
System.out.println(food.size());
food.remove("Sausage");
System.out.println(food.size());
}

This will output:

5
4

Traversing a HashSet

A HashSet can be traversed with a for-each loop. Note that when doing so, the items will not be returned in any particular order.

Example

Changing the .main() method of the above example:

public static void main(String[] args) {
HashSet<String> food = SetupHashSet();
for (String i : food) {
System.out.println(i);
}
}

This will output:

Pizza
Sausage
Potatoes
Cabbage
Salad

All contributors

Contribute to Docs

Learn Java on Codecademy