Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Interview question

How do you iterate over a Map in Java? Java में Map को कैसे iterate करें?

Answer
Map<String, Integer> map = new HashMap<>();
map.put('apple', 10);
map.put('banana', 20);
map.put('cherry', 30);

// Method 1: entrySet() - most efficient, gets key AND value together
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + ': ' + entry.getValue());
}

// Method 2: keySet() - iterate keys, then look up values (extra lookup cost)
for (String key : map.keySet()) {
    System.out.println(key + ': ' + map.get(key));  // extra get() call per key
}

// Method 3: values() - iterate values only, no keys
for (Integer value : map.values()) {
    System.out.println(value);
}

// Method 4: forEach with lambda (Java 8+) - concise
map.forEach((key, value) -> System.out.println(key + ': ' + value));

// Method 5: Iterator - useful when you need to REMOVE entries during iteration
Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry<String, Integer> entry = it.next();
    if (entry.getValue() < 15) {
        it.remove();  // safe removal during iteration
    }
}

// NEVER use map.remove() inside a for-each loop directly - causes
// ConcurrentModificationException; use Iterator.remove() instead
Map<String, Integer> map = new HashMap<>();
map.put('apple', 10);
map.put('banana', 20);

// Method 1: entrySet() - सबसे efficient
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + ': ' + entry.getValue());
}

// Method 2: keySet()
for (String key : map.keySet()) {
    System.out.println(key + ': ' + map.get(key));
}

// Method 3: values()
for (Integer value : map.values()) {
    System.out.println(value);
}

// Method 4: forEach lambda (Java 8+)
map.forEach((key, value) -> System.out.println(key + ': ' + value));

// Method 5: Iterator - iteration के दौरान remove के लिए
Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry<String, Integer> entry = it.next();
    if (entry.getValue() < 15) {
        it.remove();
    }
}

// for-each में सीधे map.remove() कभी न करें -
// ConcurrentModificationException आता है

Was this answer clear?