bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

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

Java LinkedHashSet

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 LinkedHashSet?

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.LinkedHashSet; // Import the LinkedHashSet ___
3Order

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

Check if an Element Exists
Create a LinkedHashSet
Java LinkedHashSet

A LinkedHashSet is a collection that stores unique elements and remembers the order they were added .

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

Tip

Use LinkedHashSet when you want a set that does not allow duplicates and keeps the original insertion order.

Create a LinkedHashSet

Example

Create a LinkedHashSet object called cars that will store strings:

import java.util.LinkedHashSet; // Import the LinkedHashSet class
LinkedHashSet<String> cars = new LinkedHashSet<>();

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

Add Elements

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

Example

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

Output: The elements will appear in the order they were added (e.g., [Volvo, BMW, Ford, Mazda]).

Note

Duplicates like "BMW" are ignored.

Check if an Element Exists

Use contains() to check for an element:

cars.contains("Mazda");

Remove an Element

Use remove() to remove an element

cars.remove("Volvo");

Remove All Elements

Use clear() to remove all elements

cars.clear();

LinkedHashSet 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 LinkedHashSet

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

Example

LinkedHashSet<String> cars = new LinkedHashSet<>();
// Add elements...
for (String car : cars) {
  System.out.println(car);
}

HashSet vs LinkedHashSet

FeatureHashSetLinkedHashSet
OrderNo guaranteed orderInsertion order preserved
DuplicatesNot allowedNot allowed
PerformanceFasterSlightly slower (due to order tracking)

Tip

Use HashSet when you only care about uniqueness and speed. Use LinkedHashSet when order matters.

The var Keyword

From Java 10, you can use the var keyword to declare a LinkedHashSet 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 LinkedHashSet<String> cars = new LinkedHashSet<String>();
// With var var cars = new LinkedHashSet<String>();

The Set Interface

Note

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

import java.util.Set;
import java.util.LinkedHashSet;
Set<String> cars = new LinkedHashSet<>();

This means the variable (cars) is declared as a Set (the interface), but it stores a LinkedHashSet object (the actual set). Since LinkedHashSet 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.

Previous

Java TreeSet

Next

Java Map