`UnmodifiableMultimap.forEach` uses the `Multimap.forEach` default implementation which involves listing entries, and creating a new lambda instead of simply passing the BiConsumer through to the protected instance. This is safe to pass directly though because `forEach(BiConsumer)` is a read-only operation.
@Weak private final Multimap<K, V> multimap;
    AsMap(Multimap<K, V> multimap) {
      this.multimap = checkNotNull(multimap);
    }
    @Override
    public int size() {
      return multimap.keySet().size();
    }
    @Override
    protected Set<Entry<K, Collection<V>>> createEntrySet() {
      return new EntrySet();
    }
    void removeValuesForKey(Object key) {
      multimap.keySet().remove(key);
    }
    @WeakOuter
    class EntrySet extends Maps.EntrySet<K, Collection<V>> {
      @Override
      Map<K, Collection<V>> map() {
        return AsMap.this;
      }
      @Override
      public Iterator<Entry<K, Collection<V>>> iterator() {
        return Maps.asMapEntryIterator(
            multimap.keySet(),