Java 8 Map Methods You Must Know

🚀 Java 8 Map Methods You Must Know (With Examples) As a Java developer, we often use Map, but Java 8 introduced some powerful methods that simplify complex logic. Let’s break down the most important ones 👇 import java.util.HashMap; import java.util.Map; public class MapMethodsDemo {   public static void main(String[] args) {     Map<String, Integer> map = new HashMap<>();     // Initial Data     map.put("apple", 2);     map.put("orange", 3);     System.out.println("Initial Map: " + map);     // 1. compute()     map.compute("apple", (k, v) -> v == null ? 1 : v + 1); // key exists     map.compute("banana", (k, v) -> v == null ? 1 : v + 1); // key does not exist     System.out.println("After compute(): " + map);     // 2. computeIfAbsent()     map.computeIfAbsent("grapes", k -> 10); // added     map.computeIfAbsent("apple", k -> 100); // ignored (already exists)     System.out.println("After computeIfAbsent(): " + map);     // 3. computeIfPresent()     map.computeIfPresent("orange", (k, v) -> v * 2); // updated     map.computeIfPresent("mango", (k, v) -> v * 2); // ignored (not present)     System.out.println("After computeIfPresent(): " + map);     // 4. merge()     map.merge("apple", 5, (oldVal, newVal) -> oldVal + newVal); // adds     map.merge("pineapple", 7, Integer::sum); // inserts (not present)     System.out.println("After merge(): " + map);   } } Output: Initial Map: {orange=3, apple=2} After compute(): {banana=1, orange=3, apple=3} After computeIfAbsent(): {banana=1, orange=3, apple=3, grapes=10} After computeIfPresent(): {banana=1, orange=6, apple=3, grapes=10} After merge(): {banana=1, orange=6, apple=8, pineapple=7, grapes=10} 🧠 Explanation 🔹 1. compute() 👉 Works for both existing and non-existing keys map.compute("apple", (k, v) -> v == null ? 1 : v + 1); If key exists → updates value If key doesn’t exist → creates new value v == null → means key is not present 💡 Use when you want full control over logic 🔹 2. computeIfAbsent() 👉 Runs only if key is NOT present map.computeIfAbsent("grapes", k -> 10); If key exists → does nothing If key missing → inserts value 💡 Best for: Initializing values Avoiding overwriting existing data 🔹 3. computeIfPresent() 👉 Runs only if key is present map.computeIfPresent("orange", (k, v) -> v * 2); If key exists → updates If not → ignored 💡 Use when: You only want to modify existing data 🔹 4. merge() 👉 Combines existing value + new value map.merge("apple", 5, (oldVal, newVal) -> oldVal + newVal); If key exists → applies merge logic If not → inserts directly 💡 Best for: Counting Summation Aggregation #Java #Java8 #Coding #Developers #Programming

To view or add a comment, sign in

Explore content categories