比较Java中的现有数据条目

时间:2008-12-20 00:05:37

标签: java hash compare

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

示例:假设我有4个字符串,我打算在可能的情况下相互比较,但只有3个字符串最终出现在HashMap中。如何比较存在的字符串而不尝试将它们与不匹配的字符串进行比较,而不进行一堆嵌套的ifs和elses?

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

然后,您可以查看您正在查看的所有条目是否都在该集合中。添加/删除正向映射时,请确保将反向映射放入其中。

这种方法的好处是测试将是O(n),其中n是您正在测试的键的大小,而不是O(m),其中m是前向映射的大小。