比较Java中的现有数据项

比较Java中的现有数据项,java,hash,compare,Java,Hash,Compare,我有一个将键与字符串关联的哈希映射,我需要将一些字符串相互比较。但是,一些字符串可能在HashMap中,也可能不在HashMap中 示例:假设我有4个字符串,如果可能的话,我计划相互比较,但其中只有3个字符串最终出现在HashMap中。我如何比较存在的字符串而不尝试将它们与不存在的字符串进行比较,并且不进行一系列嵌套的ifs和ELSE 编辑:Alohci的解决方案简单、快速,而且有效。循环使用HashMap的.values集合 存储第一个条目。 将每个剩余条目与存储的条目进行比较。 一旦你发现一

我有一个将键与字符串关联的哈希映射,我需要将一些字符串相互比较。但是,一些字符串可能在HashMap中,也可能不在HashMap中

示例:假设我有4个字符串,如果可能的话,我计划相互比较,但其中只有3个字符串最终出现在HashMap中。我如何比较存在的字符串而不尝试将它们与不存在的字符串进行比较,并且不进行一系列嵌套的ifs和ELSE


编辑:Alohci的解决方案简单、快速,而且有效。

循环使用HashMap的.values集合 存储第一个条目。 将每个剩余条目与存储的条目进行比较。 一旦你发现一个不匹配的,抛出你的错误。
如果到达循环的末尾,则所有字符串都匹配。

听起来您需要一个反向映射,将所有值映射到它们的键集

Map<Key,Value> forwardMap;
Map<Value, Set<Key> reverseMap;
Map-forwardMap;

那么您想比较HashMap中存储的值?您是比较所有存储的值,还是只比较其中的一部分?你想把它们和什么做比较?彼此其他地图吗?常数?你在找什么?对?独特的价值观?某些特定值?哈希映射中的所有值都应该相互比较,并且它们都需要相等(如果不相等,则抛出错误)。如果强制映射中的所有值相等,映射的意义是什么?唯一的键仍然需要对应于每个值,因为如果存在错误比较,我希望能够看到位置。我还需要这些键,以便能够向使用我的程序的其他人显示有用的错误消息。这是在列表中获取HashMap集合中存储的所有值的好方法,而不是迭代通过键集。