package androidx.collection; import java.lang.reflect.Array; import java.util.Collection; import java.util.Iterator; import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; /* loaded from: classes.dex */ abstract class MapCollections { MapCollections.EntrySet mEntrySet; MapCollections.KeySet mKeySet; MapCollections.ValuesCollection mValues; protected abstract void colClear(); protected abstract Object colGetEntry(int i, int i2); protected abstract Map colGetMap(); protected abstract int colGetSize(); protected abstract int colIndexOfKey(Object obj); protected abstract int colIndexOfValue(Object obj); protected abstract void colPut(K k, V v); protected abstract void colRemoveAt(int i); protected abstract V colSetValue(int i, V v); MapCollections() { } final class ArrayIterator implements Iterator { boolean mCanRemove = false; int mIndex; final int mOffset; int mSize; @Override // java.util.Iterator public boolean hasNext() { return this.mIndex < this.mSize; } ArrayIterator(int i) { this.mOffset = i; this.mSize = MapCollections.this.colGetSize(); } @Override // java.util.Iterator public T next() { if (!hasNext()) { throw new NoSuchElementException(); } T t = (T) MapCollections.this.colGetEntry(this.mIndex, this.mOffset); this.mIndex++; this.mCanRemove = true; return t; } @Override // java.util.Iterator public void remove() { if (!this.mCanRemove) { throw new IllegalStateException(); } int i = this.mIndex - 1; this.mIndex = i; this.mSize--; this.mCanRemove = false; MapCollections.this.colRemoveAt(i); } } final class MapIterator implements Iterator>, Map.Entry { int mEnd; boolean mEntryValid = false; int mIndex = -1; @Override // java.util.Iterator public boolean hasNext() { return this.mIndex < this.mEnd; } MapIterator() { this.mEnd = MapCollections.this.colGetSize() - 1; } @Override // java.util.Iterator public Map.Entry next() { if (!hasNext()) { throw new NoSuchElementException(); } this.mIndex++; this.mEntryValid = true; return this; } @Override // java.util.Iterator public void remove() { if (!this.mEntryValid) { throw new IllegalStateException(); } MapCollections.this.colRemoveAt(this.mIndex); this.mIndex--; this.mEnd--; this.mEntryValid = false; } @Override // java.util.Map.Entry public K getKey() { if (!this.mEntryValid) { throw new IllegalStateException("This container does not support retaining Map.Entry objects"); } return (K) MapCollections.this.colGetEntry(this.mIndex, 0); } @Override // java.util.Map.Entry public V getValue() { if (!this.mEntryValid) { throw new IllegalStateException("This container does not support retaining Map.Entry objects"); } return (V) MapCollections.this.colGetEntry(this.mIndex, 1); } @Override // java.util.Map.Entry public V setValue(V v) { if (!this.mEntryValid) { throw new IllegalStateException("This container does not support retaining Map.Entry objects"); } return (V) MapCollections.this.colSetValue(this.mIndex, v); } @Override // java.util.Map.Entry public boolean equals(Object obj) { if (!this.mEntryValid) { throw new IllegalStateException("This container does not support retaining Map.Entry objects"); } if (!(obj instanceof Map.Entry)) { return false; } Map.Entry entry = (Map.Entry) obj; return ContainerHelpers.equal(entry.getKey(), MapCollections.this.colGetEntry(this.mIndex, 0)) && ContainerHelpers.equal(entry.getValue(), MapCollections.this.colGetEntry(this.mIndex, 1)); } @Override // java.util.Map.Entry public int hashCode() { if (!this.mEntryValid) { throw new IllegalStateException("This container does not support retaining Map.Entry objects"); } Object colGetEntry = MapCollections.this.colGetEntry(this.mIndex, 0); Object colGetEntry2 = MapCollections.this.colGetEntry(this.mIndex, 1); return (colGetEntry == null ? 0 : colGetEntry.hashCode()) ^ (colGetEntry2 != null ? colGetEntry2.hashCode() : 0); } public String toString() { return getKey() + "=" + getValue(); } } final class EntrySet implements Set> { EntrySet() { } @Override // java.util.Set, java.util.Collection public boolean add(Map.Entry entry) { throw new UnsupportedOperationException(); } @Override // java.util.Set, java.util.Collection public boolean addAll(Collection> collection) { int colGetSize = MapCollections.this.colGetSize(); for (Map.Entry entry : collection) { MapCollections.this.colPut(entry.getKey(), entry.getValue()); } return colGetSize != MapCollections.this.colGetSize(); } @Override // java.util.Set, java.util.Collection public void clear() { MapCollections.this.colClear(); } @Override // java.util.Set, java.util.Collection public boolean contains(Object obj) { if (!(obj instanceof Map.Entry)) { return false; } Map.Entry entry = (Map.Entry) obj; int colIndexOfKey = MapCollections.this.colIndexOfKey(entry.getKey()); if (colIndexOfKey < 0) { return false; } return ContainerHelpers.equal(MapCollections.this.colGetEntry(colIndexOfKey, 1), entry.getValue()); } @Override // java.util.Set, java.util.Collection public boolean containsAll(Collection collection) { Iterator it = collection.iterator(); while (it.hasNext()) { if (!contains(it.next())) { return false; } } return true; } @Override // java.util.Set, java.util.Collection public boolean isEmpty() { return MapCollections.this.colGetSize() == 0; } @Override // java.util.Set, java.util.Collection, java.lang.Iterable public Iterator> iterator() { return new MapIterator(); } @Override // java.util.Set, java.util.Collection public boolean remove(Object obj) { throw new UnsupportedOperationException(); } @Override // java.util.Set, java.util.Collection public boolean removeAll(Collection collection) { throw new UnsupportedOperationException(); } @Override // java.util.Set, java.util.Collection public boolean retainAll(Collection collection) { throw new UnsupportedOperationException(); } @Override // java.util.Set, java.util.Collection public int size() { return MapCollections.this.colGetSize(); } @Override // java.util.Set, java.util.Collection public Object[] toArray() { throw new UnsupportedOperationException(); } @Override // java.util.Set, java.util.Collection public T[] toArray(T[] tArr) { throw new UnsupportedOperationException(); } @Override // java.util.Set, java.util.Collection public boolean equals(Object obj) { return MapCollections.equalsSetHelper(this, obj); } @Override // java.util.Set, java.util.Collection public int hashCode() { int i = 0; for (int colGetSize = MapCollections.this.colGetSize() - 1; colGetSize >= 0; colGetSize--) { Object colGetEntry = MapCollections.this.colGetEntry(colGetSize, 0); Object colGetEntry2 = MapCollections.this.colGetEntry(colGetSize, 1); i += (colGetEntry == null ? 0 : colGetEntry.hashCode()) ^ (colGetEntry2 == null ? 0 : colGetEntry2.hashCode()); } return i; } } final class KeySet implements Set { KeySet() { } @Override // java.util.Set, java.util.Collection public boolean add(K k) { throw new UnsupportedOperationException(); } @Override // java.util.Set, java.util.Collection public boolean addAll(Collection collection) { throw new UnsupportedOperationException(); } @Override // java.util.Set, java.util.Collection public void clear() { MapCollections.this.colClear(); } @Override // java.util.Set, java.util.Collection public boolean contains(Object obj) { return MapCollections.this.colIndexOfKey(obj) >= 0; } @Override // java.util.Set, java.util.Collection public boolean containsAll(Collection collection) { return MapCollections.containsAllHelper(MapCollections.this.colGetMap(), collection); } @Override // java.util.Set, java.util.Collection public boolean isEmpty() { return MapCollections.this.colGetSize() == 0; } @Override // java.util.Set, java.util.Collection, java.lang.Iterable public Iterator iterator() { return new ArrayIterator(0); } @Override // java.util.Set, java.util.Collection public boolean remove(Object obj) { int colIndexOfKey = MapCollections.this.colIndexOfKey(obj); if (colIndexOfKey < 0) { return false; } MapCollections.this.colRemoveAt(colIndexOfKey); return true; } @Override // java.util.Set, java.util.Collection public boolean removeAll(Collection collection) { return MapCollections.removeAllHelper(MapCollections.this.colGetMap(), collection); } @Override // java.util.Set, java.util.Collection public boolean retainAll(Collection collection) { return MapCollections.retainAllHelper(MapCollections.this.colGetMap(), collection); } @Override // java.util.Set, java.util.Collection public int size() { return MapCollections.this.colGetSize(); } @Override // java.util.Set, java.util.Collection public Object[] toArray() { return MapCollections.this.toArrayHelper(0); } @Override // java.util.Set, java.util.Collection public T[] toArray(T[] tArr) { return (T[]) MapCollections.this.toArrayHelper(tArr, 0); } @Override // java.util.Set, java.util.Collection public boolean equals(Object obj) { return MapCollections.equalsSetHelper(this, obj); } @Override // java.util.Set, java.util.Collection public int hashCode() { int i = 0; for (int colGetSize = MapCollections.this.colGetSize() - 1; colGetSize >= 0; colGetSize--) { Object colGetEntry = MapCollections.this.colGetEntry(colGetSize, 0); i += colGetEntry == null ? 0 : colGetEntry.hashCode(); } return i; } } final class ValuesCollection implements Collection { ValuesCollection() { } @Override // java.util.Collection public boolean add(V v) { throw new UnsupportedOperationException(); } @Override // java.util.Collection public boolean addAll(Collection collection) { throw new UnsupportedOperationException(); } @Override // java.util.Collection public void clear() { MapCollections.this.colClear(); } @Override // java.util.Collection public boolean contains(Object obj) { return MapCollections.this.colIndexOfValue(obj) >= 0; } @Override // java.util.Collection public boolean containsAll(Collection collection) { Iterator it = collection.iterator(); while (it.hasNext()) { if (!contains(it.next())) { return false; } } return true; } @Override // java.util.Collection public boolean isEmpty() { return MapCollections.this.colGetSize() == 0; } @Override // java.util.Collection, java.lang.Iterable public Iterator iterator() { return new ArrayIterator(1); } @Override // java.util.Collection public boolean remove(Object obj) { int colIndexOfValue = MapCollections.this.colIndexOfValue(obj); if (colIndexOfValue < 0) { return false; } MapCollections.this.colRemoveAt(colIndexOfValue); return true; } @Override // java.util.Collection public boolean removeAll(Collection collection) { int colGetSize = MapCollections.this.colGetSize(); int i = 0; boolean z = false; while (i < colGetSize) { if (collection.contains(MapCollections.this.colGetEntry(i, 1))) { MapCollections.this.colRemoveAt(i); i--; colGetSize--; z = true; } i++; } return z; } @Override // java.util.Collection public boolean retainAll(Collection collection) { int colGetSize = MapCollections.this.colGetSize(); int i = 0; boolean z = false; while (i < colGetSize) { if (!collection.contains(MapCollections.this.colGetEntry(i, 1))) { MapCollections.this.colRemoveAt(i); i--; colGetSize--; z = true; } i++; } return z; } @Override // java.util.Collection public int size() { return MapCollections.this.colGetSize(); } @Override // java.util.Collection public Object[] toArray() { return MapCollections.this.toArrayHelper(1); } @Override // java.util.Collection public T[] toArray(T[] tArr) { return (T[]) MapCollections.this.toArrayHelper(tArr, 1); } } public static boolean containsAllHelper(Map map, Collection collection) { Iterator it = collection.iterator(); while (it.hasNext()) { if (!map.containsKey(it.next())) { return false; } } return true; } public static boolean removeAllHelper(Map map, Collection collection) { int size = map.size(); Iterator it = collection.iterator(); while (it.hasNext()) { map.remove(it.next()); } return size != map.size(); } public static boolean retainAllHelper(Map map, Collection collection) { int size = map.size(); Iterator it = map.keySet().iterator(); while (it.hasNext()) { if (!collection.contains(it.next())) { it.remove(); } } return size != map.size(); } public Object[] toArrayHelper(int i) { int colGetSize = colGetSize(); Object[] objArr = new Object[colGetSize]; for (int i2 = 0; i2 < colGetSize; i2++) { objArr[i2] = colGetEntry(i2, i); } return objArr; } public T[] toArrayHelper(T[] tArr, int i) { int colGetSize = colGetSize(); if (tArr.length < colGetSize) { tArr = (T[]) ((Object[]) Array.newInstance(tArr.getClass().getComponentType(), colGetSize)); } for (int i2 = 0; i2 < colGetSize; i2++) { tArr[i2] = colGetEntry(i2, i); } if (tArr.length > colGetSize) { tArr[colGetSize] = null; } return tArr; } public static boolean equalsSetHelper(Set set, Object obj) { if (set == obj) { return true; } if (obj instanceof Set) { Set set2 = (Set) obj; try { if (set.size() == set2.size()) { if (set.containsAll(set2)) { return true; } } return false; } catch (ClassCastException | NullPointerException unused) { } } return false; } public Set> getEntrySet() { if (this.mEntrySet == null) { this.mEntrySet = new EntrySet(); } return this.mEntrySet; } public Set getKeySet() { if (this.mKeySet == null) { this.mKeySet = new KeySet(); } return this.mKeySet; } public Collection getValues() { if (this.mValues == null) { this.mValues = new ValuesCollection(); } return this.mValues; } }