public ImmutableSetMultimap<K, V> toImmutable() {
    final MutableMap<K, ImmutableSet<V>> map = UnifiedMap.newMap();

    this.map.transformValues(
        new Function2<K, MutableSet<V>, Object>() {
          public Object value(K key, MutableSet<V> set) {
            return map.put(key, set.toImmutable());
          }
        });
    return new ImmutableSetMultimapImpl<K, V>(map);
  }
 @Override
 protected MutableMap<K, MutableSet<V>> createMap() {
   return UnifiedMap.newMap();
 }
 @Override
 protected MutableMap<K, MutableSet<V>> createMapWithKeyCount(int keyCount) {
   return UnifiedMap.newMap(keyCount);
 }