package androidx.arch.core.internal; import androidx.annotation.NonNull; import androidx.annotation.RestrictTo; import androidx.arch.core.internal.SafeIterableMap; import java.util.HashMap; import java.util.Map; @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public class FastSafeIterableMap extends SafeIterableMap { private HashMap> mHashMap = new HashMap<>(); public Map.Entry ceil(K k) { if (contains(k)) { return this.mHashMap.get(k).mPrevious; } return null; } public boolean contains(K k) { return this.mHashMap.containsKey(k); } @Override // androidx.arch.core.internal.SafeIterableMap public SafeIterableMap.Entry get(K k) { return this.mHashMap.get(k); } @Override // androidx.arch.core.internal.SafeIterableMap public V putIfAbsent(@NonNull K k, @NonNull V v) { SafeIterableMap.Entry entry = get(k); if (entry != null) { return entry.mValue; } this.mHashMap.put(k, put(k, v)); return null; } @Override // androidx.arch.core.internal.SafeIterableMap public V remove(@NonNull K k) { V v = (V) super.remove(k); this.mHashMap.remove(k); return v; } }