Java LinkedHashSet addFirst() Method (Introduced in Java 21)

In Java 21, the LinkedHashSet class introduced the addFirst() method, allowing elements to be added as the first element of the collection. 

Table of Contents

  1. Introduction
  2. addFirst Method Syntax
  3. Examples
    • Adding an Element as the First Element in LinkedHashSet
    • Maintaining Insertion Order with addFirst
  4. Real-World Use Case
    • Use Case: Task Management System
  5. Conclusion

Introduction

The LinkedHashSet.addFirst() method is a new addition in Java 21 that allows you to add an element as the first element of the LinkedHashSet. This method helps maintain the desired insertion order by explicitly adding elements to the beginning of the set.

addFirst() Method Syntax

The syntax for the addFirst method is as follows:

public void addFirst(E e)
  • The method takes a single parameter e of type E, which represents the element to be added to the LinkedHashSet.
  • The method does not return any value.

Examples

Adding an Element as the First Element in LinkedHashSet

The addFirst method can be used to add an element at the beginning of a LinkedHashSet.

Example

import java.util.LinkedHashSet;

public class AddFirstExample {
    public static void main(String[] args) {
        // Creating a LinkedHashSet of Strings
        LinkedHashSet<String> animals = new LinkedHashSet<>();

        // Adding elements to the LinkedHashSet
        animals.add("Lion");
        animals.add("Tiger");
        animals.add("Elephant");

        // Adding an element as the first element
        animals.addFirst("Giraffe");

        // Printing the LinkedHashSet
        System.out.println("LinkedHashSet after addFirst: " + animals);
    }
}

Output:

LinkedHashSet after addFirst: [Giraffe, Lion, Tiger, Elephant]

Maintaining Insertion Order with addFirst

When you use addFirst, the new element is added to the beginning of the set, and the previous elements shift accordingly.

Example

import java.util.LinkedHashSet;

public class AddFirstOrderExample {
    public static void main(String[] args) {
        // Creating a LinkedHashSet of Strings
        LinkedHashSet<String> animals = new LinkedHashSet<>();

        // Adding elements to the LinkedHashSet
        animals.add("Lion");
        animals.add("Tiger");

        // Adding an element as the first element
        animals.addFirst("Giraffe");

        // Adding another element as the first element
        animals.addFirst("Zebra");

        // Printing the LinkedHashSet
        System.out.println("LinkedHashSet after multiple addFirst: " + animals);
    }
}

Output:

LinkedHashSet after multiple addFirst: [Zebra, Giraffe, Lion, Tiger]

Real-World Use Case

Use Case: Task Management System

In a task management system, tasks are typically displayed in the order they were added. However, there are scenarios where a task might need to be prioritized and moved to the top of the list. The addFirst method can be used to achieve this functionality.

Example

import java.util.LinkedHashSet;

public class TaskManagementSystem {
    public static void main(String[] args) {
        // Creating a LinkedHashSet to store tasks
        LinkedHashSet<String> tasks = new LinkedHashSet<>();

        // Adding initial tasks
        tasks.add("Complete project report");
        tasks.add("Email client updates");
        tasks.add("Prepare presentation");

        // Adding a high-priority task at the beginning
        tasks.addFirst("Resolve critical bug");

        // Printing the tasks in order of priority
        System.out.println("Tasks in order of priority: " + tasks);
    }
}

Output:

Tasks in order of priority: [Resolve critical bug, Complete project report, Email client updates, Prepare presentation]

Conclusion

The LinkedHashSet.addFirst() method introduced in Java 21 provides a way to add elements at the beginning of a LinkedHashSet. By understanding how to use this method, you can efficiently manage the order of elements in your collections. This method ensures that you can explicitly control the insertion order, making it a valuable tool for collection management in your Java applications. The real-world use case of a task management system illustrates the practical application of this method in prioritizing tasks.

Comments