Java HashSet removeAll() Method

The HashSet.removeAll() method in Java is used to remove from the HashSet all of its elements that are contained in a specified collection. 

Table of Contents

  1. Introduction
  2. removeAll Method Syntax
  3. Examples
    • Basic Example
    • Real-World Use Case: Removing Deactivated Usernames
  4. Conclusion

Introduction

The HashSet class in Java is part of the Java Collections Framework and implements the Set interface. A HashSet is used to store unique elements and provides constant-time performance for basic operations like add, remove, contains, and size. The removeAll method is used to remove all elements from the HashSet that are also contained in a specified collection.

removeAll() Method Syntax

The syntax for the removeAll method is as follows:

public boolean removeAll(Collection<?> c)
  • c: The collection containing elements to be removed from the HashSet.
  • Returns: true if the HashSet changed as a result of the call (i.e., if any elements were removed); false otherwise.

Examples

Basic Example

In this example, we'll use the removeAll method to remove elements from a HashSet that are contained in a specified List.

Example

import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;

public class HashSetRemoveAllExample {
    public static void main(String[] args) {
        // Creating a HashSet of Strings
        HashSet<String> set = new HashSet<>();
        set.add("Java");
        set.add("Python");
        set.add("C");
        set.add("JavaScript");

        // Creating a List of Strings
        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("C");

        // Removing all elements from the HashSet that are also in the List
        boolean removed = set.removeAll(list);

        // Printing the result of the removal and the HashSet after removal
        System.out.println("Were any elements removed? " + removed);
        System.out.println("HashSet after removeAll: " + set);
    }
}

Output:

Were any elements removed? true
HashSet after removeAll: [JavaScript, Python]

Real-World Use Case: Removing Deactivated Usernames

In a web application, you might want to remove a set of deactivated usernames from the list of active users.

Example

import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;

public class DeactivatedUsersExample {
    public static void main(String[] args) {
        // Creating a HashSet to store active usernames
        HashSet<String> activeUsers = new HashSet<>();
        activeUsers.add("john_doe");
        activeUsers.add("jane_smith");
        activeUsers.add("alice_jones");

        // Creating a List of deactivated usernames
        List<String> deactivatedUsers = new ArrayList<>();
        deactivatedUsers.add("jane_smith");
        deactivatedUsers.add("alice_jones");

        // Removing deactivated usernames from the active users
        boolean removed = activeUsers.removeAll(deactivatedUsers);

        // Printing the result of the removal and the active users after removal
        System.out.println("Were any users removed? " + removed);
        System.out.println("Active users after removal: " + activeUsers);
    }
}

Output:

Were any users removed? true
Active users after removal: [john_doe]

Example: Removing Out-of-Stock Items from Inventory

In an inventory management system, you might want to remove out-of-stock items from the list of available items.

Example

import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;

public class InventoryExample {
    public static void main(String[] args) {
        // Creating a HashSet to store available inventory items
        HashSet<String> inventoryItems = new HashSet<>();
        inventoryItems.add("Laptop");
        inventoryItems.add("Monitor");
        inventoryItems.add("Keyboard");
        inventoryItems.add("Mouse");

        // Creating a List of out-of-stock items
        List<String> outOfStockItems = new ArrayList<>();
        outOfStockItems.add("Monitor");
        outOfStockItems.add("Mouse");

        // Removing out-of-stock items from the inventory
        boolean removed = inventoryItems.removeAll(outOfStockItems);

        // Printing the result of the removal and the inventory after removal
        System.out.println("Were any items removed? " + removed);
        System.out.println("Inventory after removeAll: " + inventoryItems);
    }
}

Output:

Were any items removed? true
Inventory after removeAll: [Laptop, Keyboard]

Example: Removing Specific Error Codes from Logs

In a logging system, you might want to remove specific error codes from the logs to focus on more critical issues.

Example

import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;

public class ErrorCodesExample {
    public static void main(String[] args) {
        // Creating a HashSet to store error codes
        HashSet<Integer> errorCodes = new HashSet<>();
        errorCodes.add(404);
        errorCodes.add(500);
        errorCodes.add(403);
        errorCodes.add(401);

        // Creating a List of non-critical error codes to be removed
        List<Integer> nonCriticalErrors = new ArrayList<>();
        nonCriticalErrors.add(404);
        nonCriticalErrors.add(403);

        // Removing non-critical error codes from the logs
        boolean removed = errorCodes.removeAll(nonCriticalErrors);

        // Printing the result of the removal and the error codes after removal
        System.out.println("Were any error codes removed? " + removed);
        System.out.println("Error codes after removeAll: " + errorCodes);
    }
}

Output:

Were any error codes removed? true
Error codes after removeAll: [500, 401]

Conclusion

The HashSet.removeAll() method in Java provides a way to remove from the HashSet all elements that are also contained in a specified collection. This method is useful in various scenarios, such as removing deactivated usernames from active users, removing out-of-stock items from inventory, or removing specific error codes from logs. By understanding how to use this method, you can efficiently manage and manipulate sets in your Java applications.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare