Поиск ключа 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 мы проверяем, совпадает ли значение записи с заданным значением. Если совпадение есть — получаем соответствующий ключ.