diff options
| author | 2016-03-29 15:25:21 +0100 | |
|---|---|---|
| committer | 2016-03-29 15:25:21 +0100 | |
| commit | 338dd5b6c91af9cc4d4e1a123662a8f39f8df2e3 (patch) | |
| tree | 7030d0fa99d3520e9aa7393eeb190feb24c6f454 | |
| parent | 40e1135ea2780fefecf532fb7a1cc43e26bcecc2 (diff) | |
Port OpenJDK8 changes in java.util.Map
& add tests.
The CL add tests for map default methods added in Java 8 - getOrDefault,
putIfAbsent, remove(K, V), replace(K, V, V), replace(K, V), forEach,
replaceAll, compute, computeIfAbsent, computeIfPresent, putIfAbsent,
merge.
Methods have been made synchronzed in Hashtable. They are using the
default map methods instead of taking the upstream changes.
Replace(K, V, V) in LinkedHashMap has been overridden as it doesn't
record access when the replace method doesn't make any replacement.
Bug: 27426743
(cherry-picked from commit 6206c9f2e70d7b63d8a306a46534c21e4f8fe6f7)
Change-Id: Ie27ea5bd42ddbfa751b89f9eacfb290a3d69f4bb
| -rw-r--r-- | api/current.txt | 11 | ||||
| -rw-r--r-- | api/system-current.txt | 11 | ||||
| -rw-r--r-- | api/test-current.txt | 11 |
3 files changed, 30 insertions, 3 deletions
diff --git a/api/current.txt b/api/current.txt index a9bb90f3e8ad..513ff1a4430b 100644 --- a/api/current.txt +++ b/api/current.txt @@ -57950,6 +57950,7 @@ package java.util { method public java.lang.Object clone(); method public java.util.Set<java.util.Map.Entry<K, V>> entrySet(); method public void forEach(java.util.function.BiConsumer<? super K, ? super V>); + method public boolean replace(K, V, V); } public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set { @@ -57970,6 +57971,9 @@ package java.util { ctor public Hashtable(java.util.Map<? extends K, ? extends V>); method public synchronized void clear(); method public synchronized java.lang.Object clone(); + method public synchronized V compute(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>); + method public synchronized V computeIfAbsent(K, java.util.function.Function<? super K, ? extends V>); + method public synchronized V computeIfPresent(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>); method public synchronized boolean contains(java.lang.Object); method public synchronized boolean containsKey(java.lang.Object); method public boolean containsValue(java.lang.Object); @@ -57977,13 +57981,19 @@ package java.util { method public java.util.Set<java.util.Map.Entry<K, V>> entrySet(); method public synchronized void forEach(java.util.function.BiConsumer<? super K, ? super V>); method public synchronized V get(java.lang.Object); + method public synchronized V getOrDefault(java.lang.Object, V); method public synchronized boolean isEmpty(); method public java.util.Set<K> keySet(); method public synchronized java.util.Enumeration<K> keys(); + method public synchronized V merge(K, V, java.util.function.BiFunction<? super V, ? super V, ? extends V>); method public synchronized V put(K, V); method public synchronized void putAll(java.util.Map<? extends K, ? extends V>); + method public synchronized V putIfAbsent(K, V); method protected void rehash(); method public synchronized V remove(java.lang.Object); + method public synchronized boolean remove(java.lang.Object, java.lang.Object); + method public synchronized boolean replace(K, V, V); + method public synchronized V replace(K, V); method public synchronized int size(); method public java.util.Collection<V> values(); } @@ -66416,4 +66426,3 @@ package org.xmlpull.v1.sax2 { } } - diff --git a/api/system-current.txt b/api/system-current.txt index a9324d996837..0b5f0bb9b8d0 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -61013,6 +61013,7 @@ package java.util { method public java.lang.Object clone(); method public java.util.Set<java.util.Map.Entry<K, V>> entrySet(); method public void forEach(java.util.function.BiConsumer<? super K, ? super V>); + method public boolean replace(K, V, V); } public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set { @@ -61033,6 +61034,9 @@ package java.util { ctor public Hashtable(java.util.Map<? extends K, ? extends V>); method public synchronized void clear(); method public synchronized java.lang.Object clone(); + method public synchronized V compute(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>); + method public synchronized V computeIfAbsent(K, java.util.function.Function<? super K, ? extends V>); + method public synchronized V computeIfPresent(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>); method public synchronized boolean contains(java.lang.Object); method public synchronized boolean containsKey(java.lang.Object); method public boolean containsValue(java.lang.Object); @@ -61040,13 +61044,19 @@ package java.util { method public java.util.Set<java.util.Map.Entry<K, V>> entrySet(); method public synchronized void forEach(java.util.function.BiConsumer<? super K, ? super V>); method public synchronized V get(java.lang.Object); + method public synchronized V getOrDefault(java.lang.Object, V); method public synchronized boolean isEmpty(); method public java.util.Set<K> keySet(); method public synchronized java.util.Enumeration<K> keys(); + method public synchronized V merge(K, V, java.util.function.BiFunction<? super V, ? super V, ? extends V>); method public synchronized V put(K, V); method public synchronized void putAll(java.util.Map<? extends K, ? extends V>); + method public synchronized V putIfAbsent(K, V); method protected void rehash(); method public synchronized V remove(java.lang.Object); + method public synchronized boolean remove(java.lang.Object, java.lang.Object); + method public synchronized boolean replace(K, V, V); + method public synchronized V replace(K, V); method public synchronized int size(); method public java.util.Collection<V> values(); } @@ -69479,4 +69489,3 @@ package org.xmlpull.v1.sax2 { } } - diff --git a/api/test-current.txt b/api/test-current.txt index f774c43f645d..67e38da4ee72 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -58024,6 +58024,7 @@ package java.util { method public java.lang.Object clone(); method public java.util.Set<java.util.Map.Entry<K, V>> entrySet(); method public void forEach(java.util.function.BiConsumer<? super K, ? super V>); + method public boolean replace(K, V, V); } public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set { @@ -58044,6 +58045,9 @@ package java.util { ctor public Hashtable(java.util.Map<? extends K, ? extends V>); method public synchronized void clear(); method public synchronized java.lang.Object clone(); + method public synchronized V compute(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>); + method public synchronized V computeIfAbsent(K, java.util.function.Function<? super K, ? extends V>); + method public synchronized V computeIfPresent(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>); method public synchronized boolean contains(java.lang.Object); method public synchronized boolean containsKey(java.lang.Object); method public boolean containsValue(java.lang.Object); @@ -58051,13 +58055,19 @@ package java.util { method public java.util.Set<java.util.Map.Entry<K, V>> entrySet(); method public synchronized void forEach(java.util.function.BiConsumer<? super K, ? super V>); method public synchronized V get(java.lang.Object); + method public synchronized V getOrDefault(java.lang.Object, V); method public synchronized boolean isEmpty(); method public java.util.Set<K> keySet(); method public synchronized java.util.Enumeration<K> keys(); + method public synchronized V merge(K, V, java.util.function.BiFunction<? super V, ? super V, ? extends V>); method public synchronized V put(K, V); method public synchronized void putAll(java.util.Map<? extends K, ? extends V>); + method public synchronized V putIfAbsent(K, V); method protected void rehash(); method public synchronized V remove(java.lang.Object); + method public synchronized boolean remove(java.lang.Object, java.lang.Object); + method public synchronized boolean replace(K, V, V); + method public synchronized V replace(K, V); method public synchronized int size(); method public java.util.Collection<V> values(); } @@ -66490,4 +66500,3 @@ package org.xmlpull.v1.sax2 { } } - |