/**
  * Adds the specified value to the specified key's list if it is not already in that list.
  *
  * @param key the key to associate the value with
  * @param value the value to be associated
  */
 public void put(T key, V value) {
   if (!map.containsKey(key)) map.put(key, new SortedList<>(valueComparator));
   SortedList<V> temp = map.get(key);
   if (!temp.contains(value)) {
     temp.add(value);
     map.put(key, temp);
   }
 }
 /**
  * Removes the specified value from the specified key's associated values list.
  *
  * @param key the key to dissociate the value from
  * @param value the value to be dissociated
  */
 public void remove(T key, V value) {
   SortedList<V> temp = map.get(key);
   temp.remove(value);
   map.put(key, temp);
 }