package gnu.trove; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; /* loaded from: classes2.dex */ public class TIntIntHashMap extends TIntHash { protected transient int[] _values; private static final class EqProcedure implements TIntIntProcedure { private final TIntIntHashMap a; EqProcedure(TIntIntHashMap tIntIntHashMap) { this.a = tIntIntHashMap; } private static boolean b(int i, int i2) { return i == i2; } @Override // gnu.trove.TIntIntProcedure public final boolean a(int i, int i2) { return this.a.index(i) >= 0 && b(i2, this.a.get(i)); } } private final class HashProcedure implements TIntIntProcedure { private int a; HashProcedure() { } public int a() { return this.a; } @Override // gnu.trove.TIntIntProcedure public final boolean a(int i, int i2) { int i3 = this.a; int computeHashCode = TIntIntHashMap.this._hashingStrategy.computeHashCode(i); HashFunctions.a(i2); this.a = i3 + (computeHashCode ^ i2); return true; } } public TIntIntHashMap() { } private void readObject(ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException { objectInputStream.defaultReadObject(); int readInt = objectInputStream.readInt(); setUp(readInt); while (true) { int i = readInt - 1; if (readInt <= 0) { return; } put(objectInputStream.readInt(), objectInputStream.readInt()); readInt = i; } } private void writeObject(ObjectOutputStream objectOutputStream) throws IOException { objectOutputStream.defaultWriteObject(); objectOutputStream.writeInt(this._size); SerializationProcedure serializationProcedure = new SerializationProcedure(objectOutputStream); if (!forEachEntry(serializationProcedure)) { throw serializationProcedure.b; } } public boolean adjustValue(int i, int i2) { int index = index(i); if (index < 0) { return false; } int[] iArr = this._values; iArr[index] = iArr[index] + i2; return true; } @Override // gnu.trove.THash public void clear() { super.clear(); int[] iArr = this._set; int[] iArr2 = this._values; if (iArr2 == null) { return; } byte[] bArr = this._states; int length = iArr.length; while (true) { int i = length - 1; if (length <= 0) { return; } iArr[i] = 0; iArr2[i] = 0; bArr[i] = 0; length = i; } } @Override // gnu.trove.TIntHash, gnu.trove.TPrimitiveHash, gnu.trove.THash public Object clone() { TIntIntHashMap tIntIntHashMap = (TIntIntHashMap) super.clone(); int[] iArr = this._values; tIntIntHashMap._values = iArr == null ? null : (int[]) iArr.clone(); return tIntIntHashMap; } public boolean containsKey(int i) { return contains(i); } public boolean containsValue(int i) { byte[] bArr = this._states; int[] iArr = this._values; if (bArr == null) { return false; } int length = bArr.length; while (true) { int i2 = length - 1; if (length <= 0) { return false; } if (bArr[i2] == 1 && i == iArr[i2]) { return true; } length = i2; } } public boolean equals(Object obj) { if (!(obj instanceof TIntIntHashMap)) { return false; } TIntIntHashMap tIntIntHashMap = (TIntIntHashMap) obj; if (tIntIntHashMap.size() != size()) { return false; } return forEachEntry(new EqProcedure(tIntIntHashMap)); } public boolean forEachEntry(TIntIntProcedure tIntIntProcedure) { byte[] bArr = this._states; int[] iArr = this._set; int[] iArr2 = this._values; if (bArr != null) { int length = bArr.length; while (true) { int i = length - 1; if (length <= 0) { break; } if (bArr[i] == 1 && !tIntIntProcedure.a(iArr[i], iArr2[i])) { return false; } length = i; } } return true; } public boolean forEachKey(TIntProcedure tIntProcedure) { return forEach(tIntProcedure); } public boolean forEachValue(TIntProcedure tIntProcedure) { byte[] bArr = this._states; int[] iArr = this._values; if (bArr != null) { int length = bArr.length; while (true) { int i = length - 1; if (length <= 0) { break; } if (bArr[i] == 1 && !tIntProcedure.a(iArr[i])) { return false; } length = i; } } return true; } public int get(int i) { int index = index(i); if (index < 0) { return 0; } return this._values[index]; } public int[] getValues() { int[] iArr = new int[size()]; int[] iArr2 = this._values; byte[] bArr = this._states; if (bArr != null) { int length = bArr.length; int i = 0; while (true) { int i2 = length - 1; if (length <= 0) { break; } if (bArr[i2] == 1) { iArr[i] = iArr2[i2]; i++; } length = i2; } } return iArr; } public int hashCode() { HashProcedure hashProcedure = new HashProcedure(); forEachEntry(hashProcedure); return hashProcedure.a(); } public boolean increment(int i) { return adjustValue(i, 1); } public TIntIntIterator iterator() { return new TIntIntIterator(this); } public int[] keys() { int[] iArr = new int[size()]; int[] iArr2 = this._set; byte[] bArr = this._states; if (bArr != null) { int length = bArr.length; int i = 0; while (true) { int i2 = length - 1; if (length <= 0) { break; } if (bArr[i2] == 1) { iArr[i] = iArr2[i2]; i++; } length = i2; } } return iArr; } public int put(int i, int i2) { boolean z; int i3; int insertionIndex = insertionIndex(i); if (insertionIndex < 0) { insertionIndex = (-insertionIndex) - 1; i3 = this._values[insertionIndex]; z = false; } else { z = true; i3 = 0; } byte[] bArr = this._states; byte b = bArr[insertionIndex]; this._set[insertionIndex] = i; bArr[insertionIndex] = 1; this._values[insertionIndex] = i2; if (z) { postInsertHook(b == 0); } return i3; } @Override // gnu.trove.THash protected void rehash(int i) { int capacity = capacity(); int[] iArr = this._set; int[] iArr2 = this._values; byte[] bArr = this._states; this._set = new int[i]; this._values = new int[i]; this._states = new byte[i]; while (true) { int i2 = capacity - 1; if (capacity <= 0) { return; } if (bArr[i2] == 1) { int i3 = iArr[i2]; int insertionIndex = insertionIndex(i3); this._set[insertionIndex] = i3; this._values[insertionIndex] = iArr2[i2]; this._states[insertionIndex] = 1; } capacity = i2; } } public int remove(int i) { int index = index(i); if (index < 0) { return 0; } int i2 = this._values[index]; removeAt(index); return i2; } @Override // gnu.trove.TIntHash, gnu.trove.TPrimitiveHash, gnu.trove.THash protected void removeAt(int i) { this._values[i] = 0; super.removeAt(i); } public boolean retainEntries(TIntIntProcedure tIntIntProcedure) { byte[] bArr = this._states; int[] iArr = this._set; int[] iArr2 = this._values; boolean z = false; if (bArr != null) { int length = bArr.length; while (true) { int i = length - 1; if (length <= 0) { break; } if (bArr[i] != 1 || tIntIntProcedure.a(iArr[i], iArr2[i])) { length = i; } else { removeAt(i); length = i; z = true; } } } return z; } @Override // gnu.trove.TIntHash, gnu.trove.TPrimitiveHash, gnu.trove.THash protected int setUp(int i) { int up = super.setUp(i); this._values = i == -1 ? null : new int[up]; return up; } public String toString() { final StringBuilder sb = new StringBuilder(); forEachEntry(new TIntIntProcedure(this) { // from class: gnu.trove.TIntIntHashMap.1 @Override // gnu.trove.TIntIntProcedure public boolean a(int i, int i2) { if (sb.length() != 0) { StringBuilder sb2 = sb; sb2.append(','); sb2.append(' '); } sb.append(i); sb.append('='); sb.append(i2); return true; } }); sb.append('}'); sb.insert(0, '{'); return sb.toString(); } public void transformValues(TIntFunction tIntFunction) { byte[] bArr = this._states; int[] iArr = this._values; if (bArr == null) { return; } int length = bArr.length; while (true) { int i = length - 1; if (length <= 0) { return; } if (bArr[i] == 1) { iArr[i] = tIntFunction.a(iArr[i]); } length = i; } } public TIntIntHashMap(int i) { super(i); } public TIntIntHashMap(int i, float f) { super(i, f); } public TIntIntHashMap(TIntHashingStrategy tIntHashingStrategy) { super(tIntHashingStrategy); } public TIntIntHashMap(int i, TIntHashingStrategy tIntHashingStrategy) { super(i, tIntHashingStrategy); } public TIntIntHashMap(int i, float f, TIntHashingStrategy tIntHashingStrategy) { super(i, f, tIntHashingStrategy); } }