我想在a中显示值HashMap
.A HashMap
可能有重复的值(但不是重复键),但我想只显示一次值.
所以我应该找到是否Map
有重复的值.我知道我们可以迭代Map
并使用返回布尔值map.containsValue(value)
.我想知道是否有任何方法可以在map中找到重复值,或者我自己应该编写代码?
San*_*rma 19
一个简单的解决方案是将值列表的大小与您设置的值进行比较.
// 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
Run Code Online (Sandbox Code Playgroud)
例:
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);
Run Code Online (Sandbox Code Playgroud)
输出:
[2, 3, 4]
Run Code Online (Sandbox Code Playgroud)