package com.google.common.collect; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableCollection; import com.google.common.collect.Multiset; import com.google.errorprone.annotations.concurrent.LazyInit; import java.io.Serializable; import java.util.Arrays; import java.util.Collection; import java.util.Iterator; import java.util.Objects; import java.util.Set; import javax.annotation.CheckForNull; @ElementTypesAreNonnullByDefault /* loaded from: classes3.dex */ public abstract class ImmutableMultiset extends ImmutableMultisetGwtSerializationDependencies implements Multiset { @CheckForNull @LazyInit private transient ImmutableList asList; @CheckForNull @LazyInit private transient ImmutableSet> entrySet; @Override // com.google.common.collect.Multiset public abstract ImmutableSet elementSet(); abstract Multiset.Entry getEntry(int i); @Override // com.google.common.collect.ImmutableCollection abstract Object writeReplace(); public static ImmutableMultiset of() { return RegularImmutableMultiset.EMPTY; } public static ImmutableMultiset of(E e) { return copyFromElements(e); } public static ImmutableMultiset of(E e, E e2) { return copyFromElements(e, e2); } public static ImmutableMultiset of(E e, E e2, E e3) { return copyFromElements(e, e2, e3); } public static ImmutableMultiset of(E e, E e2, E e3, E e4) { return copyFromElements(e, e2, e3, e4); } public static ImmutableMultiset of(E e, E e2, E e3, E e4, E e5) { return copyFromElements(e, e2, e3, e4, e5); } public static ImmutableMultiset of(E e, E e2, E e3, E e4, E e5, E e6, E... eArr) { return new Builder().add((Builder) e).add((Builder) e2).add((Builder) e3).add((Builder) e4).add((Builder) e5).add((Builder) e6).add((Object[]) eArr).build(); } public static ImmutableMultiset copyOf(E[] eArr) { return copyFromElements(eArr); } public static ImmutableMultiset copyOf(Iterable iterable) { if (iterable instanceof ImmutableMultiset) { ImmutableMultiset immutableMultiset = (ImmutableMultiset) iterable; if (!immutableMultiset.isPartialView()) { return immutableMultiset; } } Builder builder = new Builder(Multisets.inferDistinctElements(iterable)); builder.addAll((Iterable) iterable); return builder.build(); } public static ImmutableMultiset copyOf(Iterator it) { return new Builder().addAll((Iterator) it).build(); } private static ImmutableMultiset copyFromElements(E... eArr) { return new Builder().add((Object[]) eArr).build(); } /* JADX INFO: Access modifiers changed from: package-private */ public static ImmutableMultiset copyFromEntries(Collection> collection) { Builder builder = new Builder(collection.size()); for (Multiset.Entry entry : collection) { builder.addCopies(entry.getElement(), entry.getCount()); } return builder.build(); } @Override // com.google.common.collect.ImmutableCollection, java.util.AbstractCollection, java.util.Collection, java.lang.Iterable, java.util.Set, java.util.NavigableSet, com.google.common.collect.SortedIterable public UnmodifiableIterator iterator() { final UnmodifiableIterator> it = entrySet().iterator(); return new UnmodifiableIterator(this) { // from class: com.google.common.collect.ImmutableMultiset.1 @CheckForNull E element; int remaining; @Override // java.util.Iterator public boolean hasNext() { return this.remaining > 0 || it.hasNext(); } @Override // java.util.Iterator public E next() { if (this.remaining <= 0) { Multiset.Entry entry = (Multiset.Entry) it.next(); this.element = (E) entry.getElement(); this.remaining = entry.getCount(); } this.remaining--; return (E) Objects.requireNonNull(this.element); } }; } @Override // com.google.common.collect.ImmutableCollection public ImmutableList asList() { ImmutableList immutableList = this.asList; if (immutableList != null) { return immutableList; } ImmutableList asList = super.asList(); this.asList = asList; return asList; } @Override // com.google.common.collect.ImmutableCollection, java.util.AbstractCollection, java.util.Collection, java.util.Set public boolean contains(@CheckForNull Object obj) { return count(obj) > 0; } @Override // com.google.common.collect.Multiset @Deprecated public final int add(E e, int i) { throw new UnsupportedOperationException(); } @Override // com.google.common.collect.Multiset @Deprecated public final int remove(@CheckForNull Object obj, int i) { throw new UnsupportedOperationException(); } @Override // com.google.common.collect.Multiset @Deprecated public final int setCount(E e, int i) { throw new UnsupportedOperationException(); } @Override // com.google.common.collect.Multiset @Deprecated public final boolean setCount(E e, int i, int i2) { throw new UnsupportedOperationException(); } /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.collect.ImmutableCollection public int copyIntoArray(Object[] objArr, int i) { UnmodifiableIterator> it = entrySet().iterator(); while (it.hasNext()) { Multiset.Entry next = it.next(); Arrays.fill(objArr, i, next.getCount() + i, next.getElement()); i += next.getCount(); } return i; } @Override // java.util.Collection, com.google.common.collect.Multiset public boolean equals(@CheckForNull Object obj) { return Multisets.equalsImpl(this, obj); } @Override // java.util.Collection, com.google.common.collect.Multiset public int hashCode() { return Sets.hashCodeImpl(entrySet()); } @Override // java.util.AbstractCollection, com.google.common.collect.Multiset public String toString() { return entrySet().toString(); } @Override // com.google.common.collect.Multiset public ImmutableSet> entrySet() { ImmutableSet> immutableSet = this.entrySet; if (immutableSet != null) { return immutableSet; } ImmutableSet> createEntrySet = createEntrySet(); this.entrySet = createEntrySet; return createEntrySet; } private ImmutableSet> createEntrySet() { return isEmpty() ? ImmutableSet.of() : new EntrySet(); } /* JADX INFO: Access modifiers changed from: private */ /* loaded from: classes3.dex */ public final class EntrySet extends IndexedImmutableSet> { private static final long serialVersionUID = 0; private EntrySet() { } /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.collect.ImmutableCollection public boolean isPartialView() { return ImmutableMultiset.this.isPartialView(); } /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.collect.IndexedImmutableSet public Multiset.Entry get(int i) { return ImmutableMultiset.this.getEntry(i); } @Override // java.util.AbstractCollection, java.util.Collection, java.util.Set public int size() { return ImmutableMultiset.this.elementSet().size(); } @Override // com.google.common.collect.ImmutableCollection, java.util.AbstractCollection, java.util.Collection, java.util.Set public boolean contains(@CheckForNull Object obj) { if (!(obj instanceof Multiset.Entry)) { return false; } Multiset.Entry entry = (Multiset.Entry) obj; return entry.getCount() > 0 && ImmutableMultiset.this.count(entry.getElement()) == entry.getCount(); } @Override // com.google.common.collect.ImmutableSet, java.util.Collection, java.util.Set public int hashCode() { return ImmutableMultiset.this.hashCode(); } @Override // com.google.common.collect.ImmutableSet, com.google.common.collect.ImmutableCollection Object writeReplace() { return new EntrySetSerializedForm(ImmutableMultiset.this); } } /* loaded from: classes3.dex */ static class EntrySetSerializedForm implements Serializable { final ImmutableMultiset multiset; EntrySetSerializedForm(ImmutableMultiset immutableMultiset) { this.multiset = immutableMultiset; } Object readResolve() { return this.multiset.entrySet(); } } public static Builder builder() { return new Builder<>(); } /* loaded from: classes3.dex */ public static class Builder extends ImmutableCollection.Builder { boolean buildInvoked; @CheckForNull ObjectCountHashMap contents; boolean isLinkedHash; /* JADX WARN: Multi-variable type inference failed */ @Override // com.google.common.collect.ImmutableCollection.Builder public /* bridge */ /* synthetic */ ImmutableCollection.Builder add(Object obj) { return add((Builder) obj); } public Builder() { this(4); } /* JADX INFO: Access modifiers changed from: package-private */ public Builder(int i) { this.buildInvoked = false; this.isLinkedHash = false; this.contents = ObjectCountHashMap.createWithExpectedSize(i); } /* JADX INFO: Access modifiers changed from: package-private */ public Builder(boolean z) { this.buildInvoked = false; this.isLinkedHash = false; this.contents = null; } @Override // com.google.common.collect.ImmutableCollection.Builder public Builder add(E e) { return addCopies(e, 1); } @Override // com.google.common.collect.ImmutableCollection.Builder public Builder add(E... eArr) { super.add((Object[]) eArr); return this; } public Builder addCopies(E e, int i) { Objects.requireNonNull(this.contents); if (i == 0) { return this; } if (this.buildInvoked) { this.contents = new ObjectCountHashMap<>(this.contents); this.isLinkedHash = false; } this.buildInvoked = false; Preconditions.checkNotNull(e); ObjectCountHashMap objectCountHashMap = this.contents; objectCountHashMap.put(e, i + objectCountHashMap.get(e)); return this; } public Builder setCount(E e, int i) { Objects.requireNonNull(this.contents); if (i == 0 && !this.isLinkedHash) { this.contents = new ObjectCountLinkedHashMap(this.contents); this.isLinkedHash = true; } else if (this.buildInvoked) { this.contents = new ObjectCountHashMap<>(this.contents); this.isLinkedHash = false; } this.buildInvoked = false; Preconditions.checkNotNull(e); if (i == 0) { this.contents.remove(e); } else { this.contents.put(Preconditions.checkNotNull(e), i); } return this; } /* JADX WARN: Multi-variable type inference failed */ @Override // com.google.common.collect.ImmutableCollection.Builder public Builder addAll(Iterable iterable) { Objects.requireNonNull(this.contents); if (iterable instanceof Multiset) { Multiset cast = Multisets.cast(iterable); ObjectCountHashMap tryGetMap = tryGetMap(cast); if (tryGetMap != null) { ObjectCountHashMap objectCountHashMap = this.contents; objectCountHashMap.ensureCapacity(Math.max(objectCountHashMap.size(), tryGetMap.size())); for (int firstIndex = tryGetMap.firstIndex(); firstIndex >= 0; firstIndex = tryGetMap.nextIndex(firstIndex)) { addCopies(tryGetMap.getKey(firstIndex), tryGetMap.getValue(firstIndex)); } } else { Set> entrySet = cast.entrySet(); ObjectCountHashMap objectCountHashMap2 = this.contents; objectCountHashMap2.ensureCapacity(Math.max(objectCountHashMap2.size(), entrySet.size())); for (Multiset.Entry entry : cast.entrySet()) { addCopies(entry.getElement(), entry.getCount()); } } } else { super.addAll((Iterable) iterable); } return this; } @Override // com.google.common.collect.ImmutableCollection.Builder public Builder addAll(Iterator it) { super.addAll((Iterator) it); return this; } @CheckForNull static ObjectCountHashMap tryGetMap(Iterable iterable) { if (iterable instanceof RegularImmutableMultiset) { return ((RegularImmutableMultiset) iterable).contents; } if (iterable instanceof AbstractMapBasedMultiset) { return ((AbstractMapBasedMultiset) iterable).backingMap; } return null; } @Override // com.google.common.collect.ImmutableCollection.Builder public ImmutableMultiset build() { Objects.requireNonNull(this.contents); if (this.contents.size() == 0) { return ImmutableMultiset.of(); } if (this.isLinkedHash) { this.contents = new ObjectCountHashMap<>(this.contents); this.isLinkedHash = false; } this.buildInvoked = true; return new RegularImmutableMultiset(this.contents); } } }