// Signature format: 3.0
package androidx.collection {

  public class ArrayMap<K, V> extends androidx.collection.SimpleArrayMap<K,V> implements java.util.Map<K,V> {
    ctor public ArrayMap();
    ctor public ArrayMap(int);
    ctor public ArrayMap(androidx.collection.SimpleArrayMap!);
    method public boolean containsAll(java.util.Collection<?>);
    method public java.util.Set<java.util.Map.Entry<K!,V!>!>! entrySet();
    method public java.util.Set<K!>! keySet();
    method public void putAll(java.util.Map<? extends K,? extends V>!);
    method public boolean removeAll(java.util.Collection<?>);
    method public boolean retainAll(java.util.Collection<?>);
    method public java.util.Collection<V!>! values();
  }

  public final class ArraySet<E> implements java.util.Collection<E> java.util.Set<E> {
    ctor public ArraySet();
    ctor public ArraySet(int);
    ctor public ArraySet(androidx.collection.ArraySet<E!>?);
    ctor public ArraySet(java.util.Collection<E!>?);
    method public boolean add(E?);
    method public void addAll(androidx.collection.ArraySet<? extends E>);
    method public boolean addAll(java.util.Collection<? extends E>);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void append(E!);
    method public void clear();
    method public boolean contains(Object?);
    method public boolean containsAll(java.util.Collection<?>);
    method public void ensureCapacity(int);
    method public int indexOf(Object?);
    method public boolean isEmpty();
    method public java.util.Iterator<E!>! iterator();
    method public boolean remove(Object?);
    method public boolean removeAll(androidx.collection.ArraySet<? extends E>);
    method public boolean removeAll(java.util.Collection<?>);
    method public E! removeAt(int);
    method public boolean retainAll(java.util.Collection<?>);
    method public int size();
    method public Object![] toArray();
    method public <T> T![] toArray(T![]);
    method public E? valueAt(int);
  }

  public final class CircularArray<E> {
    ctor public CircularArray();
    ctor public CircularArray(int);
    method public void addFirst(E!);
    method public void addLast(E!);
    method public void clear();
    method public E! get(int);
    method public E! getFirst();
    method public E! getLast();
    method public boolean isEmpty();
    method public E! popFirst();
    method public E! popLast();
    method public void removeFromEnd(int);
    method public void removeFromStart(int);
    method public int size();
  }

  public final class CircularIntArray {
    ctor public CircularIntArray();
    ctor public CircularIntArray(int);
    method public void addFirst(int);
    method public void addLast(int);
    method public void clear();
    method public int get(int);
    method public int getFirst();
    method public int getLast();
    method public boolean isEmpty();
    method public int popFirst();
    method public int popLast();
    method public void removeFromEnd(int);
    method public void removeFromStart(int);
    method public int size();
  }

  public class LongSparseArray<E> implements java.lang.Cloneable {
    ctor public LongSparseArray();
    ctor public LongSparseArray(int);
    method public void append(long, E!);
    method public void clear();
    method public androidx.collection.LongSparseArray<E!>! clone();
    method public boolean containsKey(long);
    method public boolean containsValue(E!);
    method @Deprecated public void delete(long);
    method public E? get(long);
    method public E! get(long, E!);
    method public int indexOfKey(long);
    method public int indexOfValue(E!);
    method public boolean isEmpty();
    method public long keyAt(int);
    method public void put(long, E!);
    method public void putAll(androidx.collection.LongSparseArray<? extends E>);
    method public E? putIfAbsent(long, E!);
    method public void remove(long);
    method public boolean remove(long, Object!);
    method public void removeAt(int);
    method public E? replace(long, E!);
    method public boolean replace(long, E!, E!);
    method public void setValueAt(int, E!);
    method public int size();
    method public E! valueAt(int);
  }

  public class LruCache<K, V> {
    ctor public LruCache(int);
    method protected V? create(K);
    method public final int createCount();
    method protected void entryRemoved(boolean, K, V, V?);
    method public final void evictAll();
    method public final int evictionCount();
    method public final V? get(K);
    method public final int hitCount();
    method public final int maxSize();
    method public final int missCount();
    method public final V? put(K, V);
    method public final int putCount();
    method public final V? remove(K);
    method public void resize(int);
    method public final int size();
    method protected int sizeOf(K, V);
    method public final java.util.Map<K!,V!>! snapshot();
    method public final String toString();
    method public void trimToSize(int);
  }

  public class SimpleArrayMap<K, V> {
    ctor public SimpleArrayMap();
    ctor public SimpleArrayMap(int);
    ctor public SimpleArrayMap(androidx.collection.SimpleArrayMap<K!,V!>!);
    method public void clear();
    method public boolean containsKey(Object?);
    method public boolean containsValue(Object!);
    method public void ensureCapacity(int);
    method public V? get(Object!);
    method public V! getOrDefault(Object!, V!);
    method public int indexOfKey(Object?);
    method public boolean isEmpty();
    method public K! keyAt(int);
    method public V? put(K!, V!);
    method public void putAll(androidx.collection.SimpleArrayMap<? extends K,? extends V>);
    method public V? putIfAbsent(K!, V!);
    method public V? remove(Object!);
    method public boolean remove(Object!, Object!);
    method public V! removeAt(int);
    method public V? replace(K!, V!);
    method public boolean replace(K!, V!, V!);
    method public V! setValueAt(int, V!);
    method public int size();
    method public V! valueAt(int);
  }

  public class SparseArrayCompat<E> implements java.lang.Cloneable {
    ctor public SparseArrayCompat();
    ctor public SparseArrayCompat(int);
    method public void append(int, E!);
    method public void clear();
    method public androidx.collection.SparseArrayCompat<E!>! clone();
    method public boolean containsKey(int);
    method public boolean containsValue(E!);
    method @Deprecated public void delete(int);
    method public E? get(int);
    method public E! get(int, E!);
    method public int indexOfKey(int);
    method public int indexOfValue(E!);
    method public boolean isEmpty();
    method public int keyAt(int);
    method public void put(int, E!);
    method public void putAll(androidx.collection.SparseArrayCompat<? extends E>);
    method public E? putIfAbsent(int, E!);
    method public void remove(int);
    method public boolean remove(int, Object!);
    method public void removeAt(int);
    method public void removeAtRange(int, int);
    method public E? replace(int, E!);
    method public boolean replace(int, E!, E!);
    method public void setValueAt(int, E!);
    method public int size();
    method public E! valueAt(int);
  }

}

