如果 hashmap 只包含一个键,有没有办法在不知道它的情况下获取该键?

If hashmap only contains one key, is there a way to get that key without knowing anything about it?

我有一个只有一个键(和一个值)的 hashamp。可以说我不知道​​那个键的键或值。有办法找到它吗?这听起来可能很愚蠢,但既然只有一个钥匙,那么有没有办法得到那个钥匙。

对于单个键映射,只需执行以下操作:

Map<String,String> map = Map.of("A","B");
System.out.println(map.keySet().iterator().next());

打印

A

对于人口较多的地图,您可以执行以下操作:

您可以通过 map.keySet() 获取地图的 keySet() 并对其进行迭代。

如果您想尝试找到与 value 关联的特定密钥,您可以 获取地图的 entrySet() 并执行如下操作:

String targetVal = "some value";
for (Entry<String,String> e : map.entrySet()) {
   if (e.getValue().equals(targetVal)) {
      System.out.println(e.getKey());
      // or
      System.out.println(e);

      // keep iterating since multiple keys can
      // map to the same value.
   }
}

您可以通过 hash_map.keySet()

获取所有密钥

https://www.geeksforgeeks.org/hashmap-keyset-method-in-java/

是的,您可以使用 iterators,这使您能够 迭代 任何 Collection(或 MapentrySet()):

public class Main {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("First", "Entry");

        System.out.println(map.entrySet().iterator().next());
    }
}

这会打印:First=Entry,其中 First 是键,Entry 是值。

hashMapObj.entrySet().iterator().next();

是您问题的答案。