package com.google.common.collect; import com.google.common.base.Objects; import com.google.common.collect.Multiset; import com.google.common.collect.Multisets; import java.util.AbstractCollection; import java.util.Collection; import java.util.Iterator; import java.util.Set; /* loaded from: classes.dex */ abstract class AbstractMultiset extends AbstractCollection implements Multiset { private transient Set elementSet; private transient Set> entrySet; class ElementSet extends Multisets.ElementSet { ElementSet() { } @Override // com.google.common.collect.Multisets.ElementSet Multiset c() { return AbstractMultiset.this; } } class EntrySet extends Multisets.EntrySet { EntrySet() { } @Override // com.google.common.collect.Multisets.EntrySet Multiset c() { return AbstractMultiset.this; } @Override // java.util.AbstractCollection, java.util.Collection, java.lang.Iterable, java.util.Set public Iterator> iterator() { return AbstractMultiset.this.entryIterator(); } @Override // java.util.AbstractCollection, java.util.Collection, java.util.Set public int size() { return AbstractMultiset.this.distinctElements(); } } AbstractMultiset() { } @Override // java.util.AbstractCollection, java.util.Collection, com.google.common.collect.Multiset public boolean add(E e) { add(e, 1); return true; } @Override // java.util.AbstractCollection, java.util.Collection public boolean addAll(Collection collection) { return Multisets.a((Multiset) this, (Collection) collection); } @Override // java.util.AbstractCollection, java.util.Collection public void clear() { Iterators.b(entryIterator()); } @Override // java.util.AbstractCollection, java.util.Collection, com.google.common.collect.Multiset public boolean contains(Object obj) { return count(obj) > 0; } public int count(Object obj) { for (Multiset.Entry entry : entrySet()) { if (Objects.a(entry.a(), obj)) { return entry.getCount(); } } return 0; } Set createElementSet() { return new ElementSet(); } Set> createEntrySet() { return new EntrySet(); } abstract int distinctElements(); @Override // com.google.common.collect.Multiset public Set elementSet() { Set set = this.elementSet; if (set != null) { return set; } Set createElementSet = createElementSet(); this.elementSet = createElementSet; return createElementSet; } abstract Iterator> entryIterator(); @Override // com.google.common.collect.Multiset public Set> entrySet() { Set> set = this.entrySet; if (set != null) { return set; } Set> createEntrySet = createEntrySet(); this.entrySet = createEntrySet; return createEntrySet; } @Override // java.util.Collection, com.google.common.collect.Multiset public boolean equals(Object obj) { return Multisets.a(this, obj); } @Override // java.util.Collection, com.google.common.collect.Multiset public int hashCode() { return entrySet().hashCode(); } @Override // java.util.AbstractCollection, java.util.Collection public boolean isEmpty() { return entrySet().isEmpty(); } @Override // java.util.AbstractCollection, java.util.Collection, java.lang.Iterable public Iterator iterator() { return Multisets.a((Multiset) this); } @Override // java.util.AbstractCollection, java.util.Collection, com.google.common.collect.Multiset public boolean remove(Object obj) { return remove(obj, 1) > 0; } @Override // java.util.AbstractCollection, java.util.Collection public boolean removeAll(Collection collection) { return Multisets.b(this, collection); } @Override // java.util.AbstractCollection, java.util.Collection public boolean retainAll(Collection collection) { return Multisets.c(this, collection); } public int setCount(E e, int i) { return Multisets.a(this, e, i); } @Override // java.util.AbstractCollection, java.util.Collection, com.google.common.collect.Multiset public int size() { return Multisets.b((Multiset) this); } @Override // java.util.AbstractCollection public String toString() { return entrySet().toString(); } public int add(E e, int i) { throw new UnsupportedOperationException(); } public int remove(Object obj, int i) { throw new UnsupportedOperationException(); } @Override // com.google.common.collect.Multiset public boolean setCount(E e, int i, int i2) { return Multisets.a(this, e, i, i2); } }