Merge "Return the previous value when adding a new one."
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index deb5aca..f780e6f 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -2709,7 +2709,7 @@
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);
diff --git a/core/java/android/util/SparseArrayMap.java b/core/java/android/util/SparseArrayMap.java
index e5bb9f45..1a2c4df 100644
--- a/core/java/android/util/SparseArrayMap.java
+++ b/core/java/android/util/SparseArrayMap.java
@@ -34,14 +34,20 @@
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. */