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() insteadMap<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?