Loading api/current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -45696,6 +45696,7 @@ package android.util { method public java.util.Set<java.util.Map.Entry<K, V>> entrySet(); method public V get(java.lang.Object); method public int indexOfKey(java.lang.Object); method public int indexOfValue(java.lang.Object); method public boolean isEmpty(); method public K keyAt(int); method public java.util.Set<K> keySet(); Loading @@ -45716,6 +45717,7 @@ package android.util { ctor public ArraySet(); ctor public ArraySet(int); ctor public ArraySet(android.util.ArraySet<E>); ctor public ArraySet(java.util.Collection<? extends E>); method public boolean add(E); method public void addAll(android.util.ArraySet<? extends E>); method public boolean addAll(java.util.Collection<? extends E>); Loading Loading @@ -46287,6 +46289,7 @@ package android.util { method public int keyAt(int); method public void put(int, boolean); method public void removeAt(int); method public void setValueAt(int, boolean); method public int size(); method public boolean valueAt(int); } Loading @@ -46305,6 +46308,7 @@ package android.util { method public int keyAt(int); method public void put(int, int); method public void removeAt(int); method public void setValueAt(int, int); method public int size(); method public int valueAt(int); } core/java/android/util/ArrayMap.java +24 −17 Original line number Diff line number Diff line Loading @@ -71,19 +71,19 @@ public final class ArrayMap<K, V> implements Map<K, V> { /** * Maximum number of entries to have in array caches. */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private static final int CACHE_SIZE = 10; /** * Special hash array value that indicates the container is immutable. */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static final int[] EMPTY_IMMUTABLE_INTS = new int[0]; /** * @hide Special immutable empty ArrayMap. */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use your own singleton empty map. public static final ArrayMap EMPTY = new ArrayMap<>(-1); /** Loading @@ -92,21 +92,21 @@ public final class ArrayMap<K, V> implements Map<K, V> { * The first entry in the array is a pointer to the next array in the * list; the second entry is a pointer to the int[] hash code array for it. */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static Object[] mBaseCache; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static int mBaseCacheSize; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static Object[] mTwiceBaseCache; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static int mTwiceBaseCacheSize; final boolean mIdentityHashCode; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Hashes are an implementation detail. Use public key/value API. int[] mHashes; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Storage is an implementation detail. Use public key/value API. Object[] mArray; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use size() int mSize; MapCollections<K, V> mCollections; Loading @@ -122,7 +122,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { } } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Hashes are an implementation detail. Use indexOfKey(Object). int indexOf(Object key, int hash) { final int N = mSize; Loading Loading @@ -161,7 +161,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { return ~end; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use indexOf(null) int indexOfNull() { final int N = mSize; Loading Loading @@ -200,7 +200,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { return ~end; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private void allocArrays(final int size) { if (mHashes == EMPTY_IMMUTABLE_INTS) { throw new UnsupportedOperationException("ArrayMap is immutable"); Loading Loading @@ -239,7 +239,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { mArray = new Object[size<<1]; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private static void freeArrays(final int[] hashes, final Object[] array, final int size) { if (hashes.length == (BASE_SIZE*2)) { synchronized (ArrayMap.class) { Loading Loading @@ -393,8 +393,15 @@ public final class ArrayMap<K, V> implements Map<K, V> { : indexOf(key, mIdentityHashCode ? System.identityHashCode(key) : key.hashCode()); } @UnsupportedAppUsage int indexOfValue(Object value) { /** * Returns an index for which {@link #valueAt} would return the * specified value, or a negative number if no keys map to the * specified value. * Beware that this is a linear search, unlike lookups by key, * and that multiple keys can map to the same value and this will * find only one of them. */ public int indexOfValue(Object value) { final int N = mSize*2; final Object[] array = mArray; if (value == null) { Loading Loading @@ -551,7 +558,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { * The array must already be large enough to contain the item. * @hide */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Storage is an implementation detail. Use put(K, V). public void append(K key, V value) { int index = mSize; final int hash = key == null ? 0 Loading core/java/android/util/ArraySet.java +11 −10 Original line number Diff line number Diff line Loading @@ -71,15 +71,15 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { static int sTwiceBaseCacheSize; final boolean mIdentityHashCode; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Hashes are an implementation detail. Use public API. int[] mHashes; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Storage is an implementation detail. Use public API. Object[] mArray; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use size() int mSize; MapCollections<E, E> mCollections; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Hashes are an implementation detail. Use indexOfKey(Object). private int indexOf(Object key, int hash) { final int N = mSize; Loading Loading @@ -118,7 +118,7 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { return ~end; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use indexOf(null) private int indexOfNull() { final int N = mSize; Loading Loading @@ -157,7 +157,7 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { return ~end; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private void allocArrays(final int size) { if (size == (BASE_SIZE * 2)) { synchronized (ArraySet.class) { Loading Loading @@ -215,7 +215,7 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { mArray = new Object[size]; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private static void freeArrays(final int[] hashes, final Object[] array, final int size) { if (hashes.length == (BASE_SIZE * 2)) { synchronized (ArraySet.class) { Loading Loading @@ -289,9 +289,10 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { } } /** {@hide} */ @UnsupportedAppUsage public ArraySet(Collection<E> set) { /** * Create a new ArraySet with items from the given collection. */ public ArraySet(Collection<? extends E> set) { this(); if (set != null) { addAll(set); Loading core/java/android/util/LongSparseLongArray.java +3 −3 Original line number Diff line number Diff line Loading @@ -46,11 +46,11 @@ import libcore.util.EmptyArray; * @hide */ public class LongSparseLongArray implements Cloneable { @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // The type isn't even public. private long[] mKeys; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // The type isn't even public. private long[] mValues; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // The type isn't even public. private int mSize; /** Loading core/java/android/util/SparseArray.java +3 −3 Original line number Diff line number Diff line Loading @@ -56,11 +56,11 @@ public class SparseArray<E> implements Cloneable { private static final Object DELETED = new Object(); private boolean mGarbage = false; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use keyAt(int) private int[] mKeys; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use valueAt(int), setValueAt(int, E) private Object[] mValues; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use size() private int mSize; /** Loading Loading
api/current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -45696,6 +45696,7 @@ package android.util { method public java.util.Set<java.util.Map.Entry<K, V>> entrySet(); method public V get(java.lang.Object); method public int indexOfKey(java.lang.Object); method public int indexOfValue(java.lang.Object); method public boolean isEmpty(); method public K keyAt(int); method public java.util.Set<K> keySet(); Loading @@ -45716,6 +45717,7 @@ package android.util { ctor public ArraySet(); ctor public ArraySet(int); ctor public ArraySet(android.util.ArraySet<E>); ctor public ArraySet(java.util.Collection<? extends E>); method public boolean add(E); method public void addAll(android.util.ArraySet<? extends E>); method public boolean addAll(java.util.Collection<? extends E>); Loading Loading @@ -46287,6 +46289,7 @@ package android.util { method public int keyAt(int); method public void put(int, boolean); method public void removeAt(int); method public void setValueAt(int, boolean); method public int size(); method public boolean valueAt(int); } Loading @@ -46305,6 +46308,7 @@ package android.util { method public int keyAt(int); method public void put(int, int); method public void removeAt(int); method public void setValueAt(int, int); method public int size(); method public int valueAt(int); }
core/java/android/util/ArrayMap.java +24 −17 Original line number Diff line number Diff line Loading @@ -71,19 +71,19 @@ public final class ArrayMap<K, V> implements Map<K, V> { /** * Maximum number of entries to have in array caches. */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private static final int CACHE_SIZE = 10; /** * Special hash array value that indicates the container is immutable. */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static final int[] EMPTY_IMMUTABLE_INTS = new int[0]; /** * @hide Special immutable empty ArrayMap. */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use your own singleton empty map. public static final ArrayMap EMPTY = new ArrayMap<>(-1); /** Loading @@ -92,21 +92,21 @@ public final class ArrayMap<K, V> implements Map<K, V> { * The first entry in the array is a pointer to the next array in the * list; the second entry is a pointer to the int[] hash code array for it. */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static Object[] mBaseCache; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static int mBaseCacheSize; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static Object[] mTwiceBaseCache; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. static int mTwiceBaseCacheSize; final boolean mIdentityHashCode; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Hashes are an implementation detail. Use public key/value API. int[] mHashes; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Storage is an implementation detail. Use public key/value API. Object[] mArray; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use size() int mSize; MapCollections<K, V> mCollections; Loading @@ -122,7 +122,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { } } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Hashes are an implementation detail. Use indexOfKey(Object). int indexOf(Object key, int hash) { final int N = mSize; Loading Loading @@ -161,7 +161,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { return ~end; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use indexOf(null) int indexOfNull() { final int N = mSize; Loading Loading @@ -200,7 +200,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { return ~end; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private void allocArrays(final int size) { if (mHashes == EMPTY_IMMUTABLE_INTS) { throw new UnsupportedOperationException("ArrayMap is immutable"); Loading Loading @@ -239,7 +239,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { mArray = new Object[size<<1]; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private static void freeArrays(final int[] hashes, final Object[] array, final int size) { if (hashes.length == (BASE_SIZE*2)) { synchronized (ArrayMap.class) { Loading Loading @@ -393,8 +393,15 @@ public final class ArrayMap<K, V> implements Map<K, V> { : indexOf(key, mIdentityHashCode ? System.identityHashCode(key) : key.hashCode()); } @UnsupportedAppUsage int indexOfValue(Object value) { /** * Returns an index for which {@link #valueAt} would return the * specified value, or a negative number if no keys map to the * specified value. * Beware that this is a linear search, unlike lookups by key, * and that multiple keys can map to the same value and this will * find only one of them. */ public int indexOfValue(Object value) { final int N = mSize*2; final Object[] array = mArray; if (value == null) { Loading Loading @@ -551,7 +558,7 @@ public final class ArrayMap<K, V> implements Map<K, V> { * The array must already be large enough to contain the item. * @hide */ @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Storage is an implementation detail. Use put(K, V). public void append(K key, V value) { int index = mSize; final int hash = key == null ? 0 Loading
core/java/android/util/ArraySet.java +11 −10 Original line number Diff line number Diff line Loading @@ -71,15 +71,15 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { static int sTwiceBaseCacheSize; final boolean mIdentityHashCode; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Hashes are an implementation detail. Use public API. int[] mHashes; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Storage is an implementation detail. Use public API. Object[] mArray; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use size() int mSize; MapCollections<E, E> mCollections; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Hashes are an implementation detail. Use indexOfKey(Object). private int indexOf(Object key, int hash) { final int N = mSize; Loading Loading @@ -118,7 +118,7 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { return ~end; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use indexOf(null) private int indexOfNull() { final int N = mSize; Loading Loading @@ -157,7 +157,7 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { return ~end; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private void allocArrays(final int size) { if (size == (BASE_SIZE * 2)) { synchronized (ArraySet.class) { Loading Loading @@ -215,7 +215,7 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { mArray = new Object[size]; } @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Allocations are an implementation detail. private static void freeArrays(final int[] hashes, final Object[] array, final int size) { if (hashes.length == (BASE_SIZE * 2)) { synchronized (ArraySet.class) { Loading Loading @@ -289,9 +289,10 @@ public final class ArraySet<E> implements Collection<E>, Set<E> { } } /** {@hide} */ @UnsupportedAppUsage public ArraySet(Collection<E> set) { /** * Create a new ArraySet with items from the given collection. */ public ArraySet(Collection<? extends E> set) { this(); if (set != null) { addAll(set); Loading
core/java/android/util/LongSparseLongArray.java +3 −3 Original line number Diff line number Diff line Loading @@ -46,11 +46,11 @@ import libcore.util.EmptyArray; * @hide */ public class LongSparseLongArray implements Cloneable { @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // The type isn't even public. private long[] mKeys; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // The type isn't even public. private long[] mValues; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // The type isn't even public. private int mSize; /** Loading
core/java/android/util/SparseArray.java +3 −3 Original line number Diff line number Diff line Loading @@ -56,11 +56,11 @@ public class SparseArray<E> implements Cloneable { private static final Object DELETED = new Object(); private boolean mGarbage = false; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use keyAt(int) private int[] mKeys; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use valueAt(int), setValueAt(int, E) private Object[] mValues; @UnsupportedAppUsage @UnsupportedAppUsage(maxTargetSdk = 28) // Use size() private int mSize; /** Loading