Write a method called reverse that accepts a map from strings to strings as a pa
ID: 3830840 • Letter: W
Question
Write a method called reverse that accepts a map from strings to strings as a parameter and returns a new map that is the reverse of the original. The reverse of a map is a new map that uses the values from the original as its keys and the keys from the original as its values. Since a map's values need not be unique but its keys must be, you should have each value map to a set of keys. In other words, if the original map maps keys of type K to values of type V, the new map should map keys of type V to values that are Sets containing elements of type K. For example, the map {42=Marty, 81=Sue, 17=Ed, 31=Dave, 56=Ed, 3=Marty, 29=Ed} has a reverse of {Marty-[42, 3], Sue=[81], Ed= [17, 56, 29], Dave = [31]}. (The order of the keys and values does not matter.)Explanation / Answer
Hi, Please find my implementation of required method.
public static Map<String, ArrayList<String>> reverse(Map<String, String> map){
Map<String, ArrayList<String>> reverseMap = new HashMap<String, ArrayList<String>>();
for(Map.Entry<String, String> entry : map.entrySet()){
String key = entry.getKey();
String value = entry.getValue();
ArrayList<String> list;
if(reverseMap.containsKey(value)){
list = reverseMap.get(value);
}else{
list = new ArrayList<>();
}
list.add(key);
reverseMap.put(value, list);
}
return reverseMap;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.