是否有一种有效的方法来检查 HashMap 是否包含映射到相同值的键?

Elr*_*son 0 java hashmap

我基本上需要知道我的 HashMap 是否有映射到相同值的不同键。我想知道除了检查每个键值与映射中的所有其他值之外是否还有其他方法。

更新: 只是一些更多的信息,希望能够澄清我想要完成的任务。考虑一个字符串“azza”。假设我正在迭代这个字符串并将每个字符存储为键,它的相应值是其他字符串。假设我最终到达最后一次出现的“a”,并且该值已经在映射中。如果与已在映射中的值对应的键也是“a”,那就没问题了。当“a”和“z”都映射到相同的值时,就会出现我的问题。仅当不同的键映射到相同的值时。

Boh*_*ian 6

当然,编码和执行最快的是:

boolean hasDupeValues = new HashSet<>(map.values()).size() != map.size();
Run Code Online (Sandbox Code Playgroud)

其执行时间为 O(n)。

集合不允许重复,因此如果存在重复,集合将小于值列表。