📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
The ConcurrentHashMap.forEach()
method in Java is used to perform a given action for each entry in the ConcurrentHashMap
.
Table of Contents
- Introduction
forEach
Method Syntax- Examples
- Basic Usage
- Using BiConsumer
- Real-World Use Case
- Example: Printing Active User Sessions
- Conclusion
Introduction
The ConcurrentHashMap.forEach()
method is a member of the ConcurrentHashMap
class in Java. It allows you to perform a specified action on each entry in the map. The ConcurrentHashMap
class is part of the java.util.concurrent
package, designed for high concurrency and scalability.
forEach() Method Syntax
The syntax for the forEach
method is as follows:
public void forEach(BiConsumer<? super K, ? super V> action)
- The method takes one parameter:
action
of typeBiConsumer<? super K, ? super V>
, which represents the action to be performed for each entry.
Examples
Basic Usage
The forEach
method can be used to perform a specified action for each entry in a ConcurrentHashMap
.
Example
import java.util.concurrent.ConcurrentHashMap; public class ForEachExample { public static void main(String[] args) { // Creating a ConcurrentHashMap with String keys and Integer values ConcurrentHashMap<String, Integer> people = new ConcurrentHashMap<>(); // Adding entries to the ConcurrentHashMap people.put("Ravi", 25); people.put("Priya", 30); people.put("Vijay", 35); // Using forEach to print each key-value pair people.forEach((key, value) -> System.out.println(key + ": " + value)); } }
Output:
Ravi: 25 Priya: 30 Vijay: 35
Using BiConsumer
You can use a BiConsumer
to perform more complex actions on each entry.
Example
import java.util.concurrent.ConcurrentHashMap; import java.util.function.BiConsumer; public class BiConsumerExample { public static void main(String[] args) { // Creating a ConcurrentHashMap with String keys and Integer values ConcurrentHashMap<String, Integer> people = new ConcurrentHashMap<>(); // Adding entries to the ConcurrentHashMap people.put("Ravi", 25); people.put("Priya", 30); people.put("Vijay", 35); // Defining a BiConsumer to print a formatted message BiConsumer<String, Integer> action = (key, value) -> System.out.println(key + " is " + value + " years old."); // Using forEach with the BiConsumer people.forEach(action); } }
Output:
Ravi is 25 years old. Priya is 30 years old. Vijay is 35 years old.
Real-World Use Case
Example: Printing Active User Sessions
A common real-world use case for ConcurrentHashMap
is managing user session data and performing actions on each session entry.
Example
import java.util.concurrent.ConcurrentHashMap; public class UserSessionStore { public static void main(String[] args) { // Creating a ConcurrentHashMap to manage user sessions ConcurrentHashMap<String, String> userSessions = new ConcurrentHashMap<>(); // Adding user sessions to the ConcurrentHashMap userSessions.put("Ravi", "Active"); userSessions.put("Priya", "Inactive"); userSessions.put("Vijay", "Active"); // Using forEach to print active user sessions System.out.println("Active User Sessions:"); userSessions.forEach((key, value) -> { if ("Active".equals(value)) { System.out.println(key + ": " + value); } }); } }
Output:
Active User Sessions: Ravi: Active Vijay: Active
In this example, ConcurrentHashMap
is used to manage user session data, and the forEach
method is employed to print active user sessions in a thread-safe manner.
Conclusion
The ConcurrentHashMap.forEach()
method in Java provides a way to perform a specified action on each entry in a ConcurrentHashMap
in a thread-safe manner. By understanding how to use this method, you can efficiently manage collections of key-value pairs in your Java applications, especially in concurrent environments. The method allows you to perform complex actions on each entry, making it a versatile tool for data management in multi-threaded scenarios.
Comments
Post a Comment
Leave Comment