Merge "Return the previous value when adding a new one."

This commit is contained in:
TreeHugger Robot
2022-09-15 15:19:14 +00:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 4 deletions

View File

@@ -2709,7 +2709,7 @@ package android.util {
public class SparseArrayMap<K, V> {
ctor public SparseArrayMap();
method public void add(int, @NonNull K, @Nullable V);
method public V add(int, @NonNull K, @Nullable V);
method public void clear();
method public boolean contains(int, @NonNull K);
method public void delete(int);

View File

@@ -34,14 +34,20 @@ import java.util.function.Consumer;
public class SparseArrayMap<K, V> {
private final SparseArray<ArrayMap<K, V>> mData = new SparseArray<>();
/** Add an entry associating obj with the int-K pair. */
public void add(int key, @NonNull K mapKey, @Nullable V obj) {
/**
* Add an entry associating obj with the int-K pair.
*
* @return the previous value associated with key, or null if there was no mapping for key.
* (A null return can also indicate that the map previously associated null with key, if the
* implementation supports null values.)
*/
public V add(int key, @NonNull K mapKey, @Nullable V obj) {
ArrayMap<K, V> data = mData.get(key);
if (data == null) {
data = new ArrayMap<>();
mData.put(key, data);
}
data.put(mapKey, obj);
return data.put(mapKey, obj);
}
/** Remove all entries from the map. */