0
I was writing a code using HashMap
How do i remove duplicate values from the HashMap https://code.sololearn.com/cDntWvZ688b5/?ref=app
2 ответов
+ 3
Do you care what key is removed when it maps to a duplicated value?
If no, the following method should work. Note that the result is returned so you'll have to assign that to a variable.
private static HashMap<String, String> removeDuplicateValues(Map<String, String> map) {
HashSet<String> values = new HashSet<String>();
HashMap<String, String> result = new HashMap<String, String>();
for (Map.Entry<String, String> pair: map.entrySet()) {
if (!values.contains(pair.getValue())) {
result.put(pair.getKey(), pair.getValue());
values.add(pair.getValue());
}
}
return result;
}
I used HashSet which you can import or replace all your imports with import java.util.*;
I tested that with a main like this:
public static void main(String[] args){
HashMap<String, String> map = createMap();
map = removeDuplicateValues(map);
for (Map.Entry<String, String> pair : map.entrySet()){
System.out.println(pair.getKey() + ": " + pair.getValue());
}
}
The output was:
haokip8: stephen3
haokip9: stephen4
haokip4: stephen7
haokip5: stephen6
haokip6: stephen5
haokip0: stephen2
haokip1: stephen0
haokip2: stephen9
haokip3: stephen8
Notice that stephen4 appears only once. createMap adds 2 stephen4 values.
PS: Fix your indentation. It looks really bad in Sololearn's Code Editor.
0
Thank you Josh Greig