Поиск ключа HashMap по значению в Java — пример программы

Пример: Получение ключа для заданного значения в HashMap

import java.util.HashMap;
import java.util.Map.Entry;

class Main {
  public static void main(String[] args) {

    // create a hashmap
    HashMap<String, Integer> numbers = new HashMap<>();
    numbers.put("One", 1);
    numbers.put("Two", 2);
    numbers.put("Three", 3);
    System.out.println("HashMap: " + numbers);

    // value whose key is to be searched
    Integer value = 3;

    // iterate each entry of hashmap
    for(Entry<String, Integer> entry: numbers.entrySet()) {

      // if give value is equal to value from entry
      // print the corresponding key
      if(entry.getValue() == value) {
        System.out.println("The key for value " + value + " is " + entry.getKey());
        break;
      }
    }
  }
}

Вывод:

HashMap: {One=1, Two=2, Three=3}
The key for value 3 is Three

В приведённом примере мы создали HashMap с именем numbers и хотим получить ключ для значения 3. Обратите внимание на строку:

Entry<String, Integer> entry : numbers.entrySet()

Здесь метод entrySet() возвращает представление всех записей в виде множества.

  • entry.getValue() — получает значение из записи;

  • entry.getKey() — получает ключ из записи.

Внутри if мы проверяем, совпадает ли значение записи с заданным значением. Если совпадение есть — получаем соответствующий ключ.