package com.google.common.collect; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import com.google.common.collect.Multimaps; import java.util.AbstractCollection; import java.util.Collection; import java.util.Iterator; import java.util.Map; import java.util.Set; /* loaded from: classes.dex */ abstract class AbstractMultimap implements Multimap { private transient Map> asMap; private transient Collection> entries; private transient Set keySet; private transient Multiset keys; private transient Collection values; private class Entries extends Multimaps.Entries { private Entries() { } @Override // com.google.common.collect.Multimaps.Entries Multimap a() { return AbstractMultimap.this; } @Override // java.util.AbstractCollection, java.util.Collection, java.lang.Iterable public Iterator> iterator() { return AbstractMultimap.this.entryIterator(); } } private class EntrySet extends AbstractMultimap.Entries implements Set> { private EntrySet(AbstractMultimap abstractMultimap) { super(); } @Override // java.util.Collection, java.util.Set public boolean equals(Object obj) { return Sets.a(this, obj); } @Override // java.util.Collection, java.util.Set public int hashCode() { return Sets.a(this); } } class Values extends AbstractCollection { Values() { } @Override // java.util.AbstractCollection, java.util.Collection public void clear() { AbstractMultimap.this.clear(); } @Override // java.util.AbstractCollection, java.util.Collection public boolean contains(Object obj) { return AbstractMultimap.this.containsValue(obj); } @Override // java.util.AbstractCollection, java.util.Collection, java.lang.Iterable public Iterator iterator() { return AbstractMultimap.this.valueIterator(); } @Override // java.util.AbstractCollection, java.util.Collection public int size() { return AbstractMultimap.this.size(); } } AbstractMultimap() { } @Override // com.google.common.collect.Multimap public Map> asMap() { Map> map = this.asMap; if (map != null) { return map; } Map> createAsMap = createAsMap(); this.asMap = createAsMap; return createAsMap; } @Override // com.google.common.collect.Multimap public boolean containsEntry(Object obj, Object obj2) { Collection collection = asMap().get(obj); return collection != null && collection.contains(obj2); } public boolean containsValue(Object obj) { Iterator> it = asMap().values().iterator(); while (it.hasNext()) { if (it.next().contains(obj)) { return true; } } return false; } abstract Map> createAsMap(); Collection> createEntries() { return this instanceof SetMultimap ? new EntrySet() : new Entries(); } Set createKeySet() { return new Maps.KeySet(asMap()); } Multiset createKeys() { return new Multimaps.Keys(this); } Collection createValues() { return new Values(); } @Override // com.google.common.collect.Multimap public Collection> entries() { Collection> collection = this.entries; if (collection != null) { return collection; } Collection> createEntries = createEntries(); this.entries = createEntries; return createEntries; } abstract Iterator> entryIterator(); public boolean equals(Object obj) { return Multimaps.a(this, obj); } public int hashCode() { return asMap().hashCode(); } @Override // com.google.common.collect.Multimap public boolean isEmpty() { return size() == 0; } @Override // com.google.common.collect.Multimap public Set keySet() { Set set = this.keySet; if (set != null) { return set; } Set createKeySet = createKeySet(); this.keySet = createKeySet; return createKeySet; } public Multiset keys() { Multiset multiset = this.keys; if (multiset != null) { return multiset; } Multiset createKeys = createKeys(); this.keys = createKeys; return createKeys; } @Override // com.google.common.collect.Multimap public abstract boolean put(K k, V v); @Override // com.google.common.collect.Multimap public boolean putAll(K k, Iterable iterable) { Preconditions.a(iterable); if (iterable instanceof Collection) { Collection collection = (Collection) iterable; return !collection.isEmpty() && get(k).addAll(collection); } Iterator it = iterable.iterator(); return it.hasNext() && Iterators.a(get(k), it); } @Override // com.google.common.collect.Multimap public boolean remove(Object obj, Object obj2) { Collection collection = asMap().get(obj); return collection != null && collection.remove(obj2); } public abstract Collection replaceValues(K k, Iterable iterable); public String toString() { return asMap().toString(); } Iterator valueIterator() { return Maps.b(entries().iterator()); } public Collection values() { Collection collection = this.values; if (collection != null) { return collection; } Collection createValues = createValues(); this.values = createValues; return createValues; } public boolean putAll(Multimap multimap) { boolean z = false; for (Map.Entry entry : multimap.entries()) { z |= put(entry.getKey(), entry.getValue()); } return z; } }