📅  最后修改于: 2023-12-03 14:42:14.370000             🧑  作者: Mango
在 Java 中,HashMap 是一种常用的集合。它是一个无序的键值对集合,在键和值都可以是任何类型的对象。
有时候需要通过值来获取对应的键,本文将介绍如何在 HashMap 中实现按值获取键。
在 HashMap 中,获取键的方法有以下两种:
entrySet()
方法获取所有键值对,并通过遍历比较值来获取对应的键。keySet()
方法获取所有键,并逐个判断对应的值是否相等。下面分别介绍这两种方法的实现。
entrySet()
方法使用 entrySet()
方法可以获取所有键值对。然后通过遍历比较值来获取对应的键。代码如下:
public static <K, V> K getKey(Map<K, V> map, V value) {
for (Map.Entry<K, V> entry : map.entrySet()) {
if (Objects.equals(value, entry.getValue())) {
return entry.getKey();
}
}
return null;
}
以上代码定义了一个静态方法 getKey()
,它接受一个 HashMap 和一个值参数。该方法遍历所有键值对,如果值与参数相等,则返回对应的键。
keySet()
方法使用 keySet()
方法可以获取所有键。然后逐个判断对应的值是否相等。代码如下:
public static <K, V> K getKey(Map<K, V> map, V value) {
for (K key : map.keySet()) {
if (Objects.equals(value, map.get(key))) {
return key;
}
}
return null;
}
以上代码定义了一个与上面相似的静态方法 getKey()
。该方法遍历所有键,逐个判断对应的值是否相等,如果相等则返回对应的键。
以上是在 Java 中实现按值获取键的方法。根据具体的场景选择合适的方法可以更加高效地实现功能。