111 lines
2.7 KiB
Java
111 lines
2.7 KiB
Java
package org.greenrobot.greendao.internal;
|
|
|
|
import java.util.Arrays;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public final class LongHashMap<T> {
|
|
private Entry<T>[] a;
|
|
private int b;
|
|
private int c;
|
|
private int d;
|
|
|
|
static final class Entry<T> {
|
|
final long a;
|
|
T b;
|
|
Entry<T> c;
|
|
|
|
Entry(long j, T t, Entry<T> entry) {
|
|
this.a = j;
|
|
this.b = t;
|
|
this.c = entry;
|
|
}
|
|
}
|
|
|
|
public LongHashMap() {
|
|
this(16);
|
|
}
|
|
|
|
public T a(long j) {
|
|
for (Entry<T> entry = this.a[((((int) j) ^ ((int) (j >>> 32))) & Integer.MAX_VALUE) % this.b]; entry != null; entry = entry.c) {
|
|
if (entry.a == j) {
|
|
return entry.b;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public T b(long j) {
|
|
int i = ((((int) j) ^ ((int) (j >>> 32))) & Integer.MAX_VALUE) % this.b;
|
|
Entry<T> entry = this.a[i];
|
|
Entry<T> entry2 = null;
|
|
while (entry != null) {
|
|
Entry<T> entry3 = entry.c;
|
|
if (entry.a == j) {
|
|
if (entry2 == null) {
|
|
this.a[i] = entry3;
|
|
} else {
|
|
entry2.c = entry3;
|
|
}
|
|
this.d--;
|
|
return entry.b;
|
|
}
|
|
entry2 = entry;
|
|
entry = entry3;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public LongHashMap(int i) {
|
|
this.b = i;
|
|
this.c = (i * 4) / 3;
|
|
this.a = new Entry[i];
|
|
}
|
|
|
|
public T a(long j, T t) {
|
|
int i = ((((int) j) ^ ((int) (j >>> 32))) & Integer.MAX_VALUE) % this.b;
|
|
Entry<T> entry = this.a[i];
|
|
for (Entry<T> entry2 = entry; entry2 != null; entry2 = entry2.c) {
|
|
if (entry2.a == j) {
|
|
T t2 = entry2.b;
|
|
entry2.b = t;
|
|
return t2;
|
|
}
|
|
}
|
|
this.a[i] = new Entry<>(j, t, entry);
|
|
this.d++;
|
|
if (this.d <= this.c) {
|
|
return null;
|
|
}
|
|
b(this.b * 2);
|
|
return null;
|
|
}
|
|
|
|
public void b(int i) {
|
|
Entry<T>[] entryArr = new Entry[i];
|
|
int length = this.a.length;
|
|
for (int i2 = 0; i2 < length; i2++) {
|
|
Entry<T> entry = this.a[i2];
|
|
while (entry != null) {
|
|
long j = entry.a;
|
|
int i3 = ((((int) (j >>> 32)) ^ ((int) j)) & Integer.MAX_VALUE) % i;
|
|
Entry<T> entry2 = entry.c;
|
|
entry.c = entryArr[i3];
|
|
entryArr[i3] = entry;
|
|
entry = entry2;
|
|
}
|
|
}
|
|
this.a = entryArr;
|
|
this.b = i;
|
|
this.c = (i * 4) / 3;
|
|
}
|
|
|
|
public void a() {
|
|
this.d = 0;
|
|
Arrays.fill(this.a, (Object) null);
|
|
}
|
|
|
|
public void a(int i) {
|
|
b((i * 5) / 3);
|
|
}
|
|
}
|