package gnu.trove; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; /* loaded from: classes2.dex */ public class TFloatLongHashMap extends TFloatHash { protected transient long[] _values; private static final class EqProcedure implements TFloatLongProcedure { private final TFloatLongHashMap a; EqProcedure(TFloatLongHashMap tFloatLongHashMap) { this.a = tFloatLongHashMap; } private static boolean a(long j, long j2) { return j == j2; } @Override // gnu.trove.TFloatLongProcedure public final boolean a(float f, long j) { return this.a.index(f) >= 0 && a(j, this.a.get(f)); } } private final class HashProcedure implements TFloatLongProcedure { private int a; HashProcedure() { } public int a() { return this.a; } @Override // gnu.trove.TFloatLongProcedure public final boolean a(float f, long j) { this.a += TFloatLongHashMap.this._hashingStrategy.computeHashCode(f) ^ HashFunctions.a(j); return true; } } public TFloatLongHashMap() { } 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.readFloat(), objectInputStream.readLong()); 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(float f, long j) { int index = index(f); if (index < 0) { return false; } long[] jArr = this._values; jArr[index] = jArr[index] + j; return true; } @Override // gnu.trove.THash public void clear() { super.clear(); float[] fArr = this._set; long[] jArr = this._values; if (jArr == null) { return; } byte[] bArr = this._states; int length = fArr.length; while (true) { int i = length - 1; if (length <= 0) { return; } fArr[i] = 0.0f; jArr[i] = 0; bArr[i] = 0; length = i; } } @Override // gnu.trove.TFloatHash, gnu.trove.TPrimitiveHash, gnu.trove.THash public Object clone() { TFloatLongHashMap tFloatLongHashMap = (TFloatLongHashMap) super.clone(); long[] jArr = this._values; tFloatLongHashMap._values = jArr == null ? null : (long[]) jArr.clone(); return tFloatLongHashMap; } public boolean containsKey(float f) { return contains(f); } public boolean containsValue(long j) { byte[] bArr = this._states; long[] jArr = this._values; if (bArr == null) { return false; } int length = bArr.length; while (true) { int i = length - 1; if (length <= 0) { return false; } if (bArr[i] == 1 && j == jArr[i]) { return true; } length = i; } } public boolean equals(Object obj) { if (!(obj instanceof TFloatLongHashMap)) { return false; } TFloatLongHashMap tFloatLongHashMap = (TFloatLongHashMap) obj; if (tFloatLongHashMap.size() != size()) { return false; } return forEachEntry(new EqProcedure(tFloatLongHashMap)); } public boolean forEachEntry(TFloatLongProcedure tFloatLongProcedure) { byte[] bArr = this._states; float[] fArr = this._set; long[] jArr = this._values; if (bArr != null) { int length = bArr.length; while (true) { int i = length - 1; if (length <= 0) { break; } if (bArr[i] == 1 && !tFloatLongProcedure.a(fArr[i], jArr[i])) { return false; } length = i; } } return true; } public boolean forEachKey(TFloatProcedure tFloatProcedure) { return forEach(tFloatProcedure); } public boolean forEachValue(TLongProcedure tLongProcedure) { byte[] bArr = this._states; long[] jArr = this._values; if (bArr != null) { int length = bArr.length; while (true) { int i = length - 1; if (length <= 0) { break; } if (bArr[i] == 1 && !tLongProcedure.a(jArr[i])) { return false; } length = i; } } return true; } public long get(float f) { int index = index(f); if (index < 0) { return 0L; } return this._values[index]; } public long[] getValues() { long[] jArr = new long[size()]; long[] jArr2 = 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) { jArr[i] = jArr2[i2]; i++; } length = i2; } } return jArr; } public int hashCode() { HashProcedure hashProcedure = new HashProcedure(); forEachEntry(hashProcedure); return hashProcedure.a(); } public boolean increment(float f) { return adjustValue(f, 1L); } public TFloatLongIterator iterator() { return new TFloatLongIterator(this); } public float[] keys() { float[] fArr = new float[size()]; float[] fArr2 = 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) { fArr[i] = fArr2[i2]; i++; } length = i2; } } return fArr; } public long put(float f, long j) { long j2; boolean z; int insertionIndex = insertionIndex(f); if (insertionIndex < 0) { insertionIndex = (-insertionIndex) - 1; j2 = this._values[insertionIndex]; z = false; } else { j2 = 0; z = true; } byte[] bArr = this._states; byte b = bArr[insertionIndex]; this._set[insertionIndex] = f; bArr[insertionIndex] = 1; this._values[insertionIndex] = j; if (z) { postInsertHook(b == 0); } return j2; } @Override // gnu.trove.THash protected void rehash(int i) { int capacity = capacity(); float[] fArr = this._set; long[] jArr = this._values; byte[] bArr = this._states; this._set = new float[i]; this._values = new long[i]; this._states = new byte[i]; while (true) { int i2 = capacity - 1; if (capacity <= 0) { return; } if (bArr[i2] == 1) { float f = fArr[i2]; int insertionIndex = insertionIndex(f); this._set[insertionIndex] = f; this._values[insertionIndex] = jArr[i2]; this._states[insertionIndex] = 1; } capacity = i2; } } public long remove(float f) { int index = index(f); if (index < 0) { return 0L; } long j = this._values[index]; removeAt(index); return j; } @Override // gnu.trove.TFloatHash, gnu.trove.TPrimitiveHash, gnu.trove.THash protected void removeAt(int i) { this._values[i] = 0; super.removeAt(i); } public boolean retainEntries(TFloatLongProcedure tFloatLongProcedure) { byte[] bArr = this._states; float[] fArr = this._set; long[] jArr = 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 || tFloatLongProcedure.a(fArr[i], jArr[i])) { length = i; } else { removeAt(i); length = i; z = true; } } } return z; } @Override // gnu.trove.TFloatHash, gnu.trove.TPrimitiveHash, gnu.trove.THash protected int setUp(int i) { int up = super.setUp(i); this._values = i == -1 ? null : new long[up]; return up; } public String toString() { final StringBuilder sb = new StringBuilder(); forEachEntry(new TFloatLongProcedure(this) { // from class: gnu.trove.TFloatLongHashMap.1 @Override // gnu.trove.TFloatLongProcedure public boolean a(float f, long j) { if (sb.length() != 0) { StringBuilder sb2 = sb; sb2.append(','); sb2.append(' '); } sb.append(f); sb.append('='); sb.append(j); return true; } }); sb.append('}'); sb.insert(0, '{'); return sb.toString(); } public void transformValues(TLongFunction tLongFunction) { byte[] bArr = this._states; long[] jArr = this._values; if (bArr == null) { return; } int length = bArr.length; while (true) { int i = length - 1; if (length <= 0) { return; } if (bArr[i] == 1) { jArr[i] = tLongFunction.a(jArr[i]); } length = i; } } public TFloatLongHashMap(int i) { super(i); } public TFloatLongHashMap(int i, float f) { super(i, f); } public TFloatLongHashMap(TFloatHashingStrategy tFloatHashingStrategy) { super(tFloatHashingStrategy); } public TFloatLongHashMap(int i, TFloatHashingStrategy tFloatHashingStrategy) { super(i, tFloatHashingStrategy); } public TFloatLongHashMap(int i, float f, TFloatHashingStrategy tFloatHashingStrategy) { super(i, f, tFloatHashingStrategy); } }