📜  JAVA HashMap 按值获取键 - Java (1)

📅  最后修改于: 2023-12-03 14:42:14.370000             🧑  作者: Mango

JAVA HashMap 按值获取键 - Java

在 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 中实现按值获取键的方法。根据具体的场景选择合适的方法可以更加高效地实现功能。