При стандартном HashMap
единственное, что вы можете сделать, - это перебирать записи на карте, пока не найдете тот, который имеет искомое значение, а затем вернуть ключ для этого.
HashMap
предназначен для быстрого и эффективного поиска значения, если вы знаете ключ, но не наоборот.Есть некоторые библиотеки, которые имеют карты, которые позволяют вам искать значение по ключу, а также наоборот. Google Guava , например, имеет BiMap
, который поддерживает это.
Используя Guava's HashBiMap
, вы можете сделать это:
BiMap<String, String> map = HashBiMap.create();
map.put("1", "Sachin");
map.put("2", "Dravid");
map.put("3", "Sehwag");
map.put("4", "Laxman");
map.put("5", "Kohli");
String key = map.inverse().get("Dravid");