Java BiConsumer

📘 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

Introduction

In Java, the BiConsumer is a functional interface that represents an operation that takes two input arguments and returns no result. It's useful for operations involving two parameters, like updating data structures or logging.

Table of Contents

  1. What is BiConsumer?
  2. Methods and Syntax
  3. Examples of BiConsumer
  4. Real-World Use Case
  5. Conclusion

1. What is BiConsumer?

BiConsumer is a functional interface that takes two arguments and operates on them without returning a result. It is commonly used in lambda expressions and method references.

2. Methods and Syntax

The main method in the BiConsumer interface is:

  • void accept(T t, U u): Performs this operation on the given arguments.

Syntax

BiConsumer<T, U> biConsumer = (T t, U u) -> { // operation on t and u }; 

3. Examples of BiConsumer

Example 1: Printing Two Values

import java.util.function.BiConsumer; public class BiConsumerExample { public static void main(String[] args) { // Define a BiConsumer that prints a name and age BiConsumer<String, Integer> print = (name, age) -> { System.out.println(name + " is " + age + " years old."); }; print.accept("Raj", 30); } } 

Output:

Raj is 30 years old. 

Example 2: Updating a Map

import java.util.HashMap; import java.util.Map; import java.util.function.BiConsumer; public class BiConsumerMapExample { public static void main(String[] args) { // Create a map with fruit names and their counts Map<String, Integer> map = new HashMap<>(); map.put("Apple", 3); map.put("Banana", 2); // Define a BiConsumer to update the map values BiConsumer<String, Integer> updateMap = (key, value) -> map.put(key, value + 1); map.forEach(updateMap); System.out.println(map); } } 

Output:

{Apple=4, Banana=3} 

4. Real-World Use Case: Inventory Management

In inventory management systems, BiConsumer can be used to update stock levels based on incoming shipments.

import java.util.HashMap; import java.util.Map; import java.util.function.BiConsumer; public class InventoryManagement { public static void main(String[] args) { // Inventory map with item names and quantities Map<String, Integer> inventory = new HashMap<>(); inventory.put("Laptops", 50); inventory.put("Monitors", 30); // Shipments map with items and quantities to add Map<String, Integer> shipments = new HashMap<>(); shipments.put("Laptops", 10); shipments.put("Monitors", 5); // BiConsumer to update inventory based on shipments BiConsumer<String, Integer> updateInventory = (item, quantity) -> inventory.merge(item, quantity, Integer::sum); // Process each shipment shipments.forEach(updateInventory); System.out.println(inventory); } } 

Output:

{Laptops=60, Monitors=35} 

Conclusion

The BiConsumer interface is a versatile tool in Java for performing operations on two inputs without returning a result. It simplifies handling operations in functional programming and is especially useful in data processing and inventory management scenarios.

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