Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

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.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.