在 Java Map 中查找重复值?

新手上路,请多包涵

我想在 HashMap 中显示值。 A HashMap 可能有重复值(但不是重复键),但我只想显示一次值。

所以我应该找出 Map 是否有重复值。我知道我们可以迭代 Map 并使用 map.containsValue(value) 的返回布尔值。我想知道是否存在任何方法可以在地图中查找重复值,或者我们应该自己编写代码吗?

原文由 Silambarasan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

一个简单的解决方案是将值列表的大小与值集进行比较。

 // pseudo-code
List<T> valuesList = map.values();
Set<T> valuesSet = new HashSet<T>(map.values);
// check size of both collections; if unequal, you have duplicates

原文由 Sanjay T. Sharma 发布,翻译遵循 CC BY-SA 3.0 许可协议

例子:

 Map<Object, Object> map = new HashMap<Object, Object>();
map.put(1,2);
map.put(3,4);
map.put(2,2);
map.put(5,3);

Set<Object> uniqueValues = new HashSet<Object>(map.values());

System.out.println(uniqueValues);

输出:

 [2, 3, 4]

原文由 Adriaan Koster 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏