Junior
How to iterate over all key-value pairs in a Map?
sobes.tech AI
Answer from AI
There are several ways:
-
Using
entrySet(): The most common and efficient way. It returns a set ofMap.Entryobjects, which can then be iterated over.// Example of using entrySet() Map<String, Integer> map = new HashMap<>(); map.put("A", 1); map.put("B", 2); for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); // Process key and value } -
Using
keySet()to get keys and then callingget(): Less efficient, as it performs an additional lookup for each key.// Example of using keySet() Map<String, Integer> map = new HashMap<>(); map.put("A", 1); map.put("B", 2); for (String key : map.keySet()) { Integer value = map.get(key); // Process key and value } -
Using
forEach()with lambda expression (Java 8+): A convenient and concise way.// Example of using forEach() Map<String, Integer> map = new HashMap<>(); map.put("A", 1); map.put("B", 2); map.forEach((key, value) -> { // Process key and value }); -
Using an iterator with
entrySet(): A classic iteration method.// Example of using iterator with entrySet() Map<String, Integer> map = new HashMap<>(); map.put("A", 1); map.put("B", 2); Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, Integer> entry = iterator.next(); String key = entry.getKey(); Integer value = entry.getValue(); // Process key and value }
It is recommended to use entrySet() or forEach(), as they are the most efficient. The choice between them depends on coding style and backward compatibility requirements (for Java 8+).