Map.entrySet()
Возвращает все пары «ключ — значение» для обхода.
Доступно с: Java 1.2
Синтаксис
Set<Map.Entry<K, V>> entrySet()Возвращаемое значение
Set<Map.Entry<K, V>>Множество пар словаря, связанное с ним.
Примеры
Обход пар в цикле:
void main() {
Map<String, Double> rates = new TreeMap<>(Map.of("EUR", 1.0, "USD", 1.08));
for (var e : rates.entrySet()) {
IO.println(e.getKey() + " = " + e.getValue());
}
}Результат:
EUR = 1.0
USD = 1.08Пары в потоке: ключ с наибольшим значением:
void main() {
Map<String, Integer> votes = Map.of("Anna", 12, "Oleg", 17, "Ivan", 9);
String winner = votes.entrySet().stream()
.max(Map.Entry.comparingByValue())
.map(Map.Entry::getKey)
.orElse("nobody");
IO.println(winner);
}Результат:
OlegПримечания
Это лучший способ обойти словарь, когда нужны и ключи, и значения: не нужен лишний get() на каждом шаге. Множество связано со словарём — удаление из него (например, removeIf()) удаляет пары из словаря.
См. также
- Map.Entry — Одна пара «ключ — значение» словаря.
- Map.keySet() — Возвращает множество всех ключей словаря.
- Map.values() — Возвращает коллекцию всех значений словаря.
- Map.forEach() — Выполняет действие для каждой пары словаря.
Вопросы и ответы по теме
В учебнике
- Словари: Map и HashMap — Словари Map в Java: пары ключ — значение, put и get, getOrDefault, подсчёт с merge, TreeMap и LinkedHashMap.