diff options
author | mduigou <none@none> | 2013-08-21 12:03:19 -0700 |
---|---|---|
committer | mduigou <none@none> | 2013-08-21 12:03:19 -0700 |
commit | 0b5fb01b5f96882dac22891c459bf1dc9995dd79 (patch) | |
tree | 3fcd426a768fab51facd915a620c5725b1e7a2e2 /src/share/classes/java/util/TreeMap.java | |
parent | 55c6357489f23e0ecab3ce0db215816b3c519b44 (diff) | |
download | jdk8u_jdk-0b5fb01b5f96882dac22891c459bf1dc9995dd79.tar.gz |
8023306: Add replace() implementations to TreeMap
Reviewed-by: psandoz, alanb, chegar, bpb
Diffstat (limited to 'src/share/classes/java/util/TreeMap.java')
-rw-r--r-- | src/share/classes/java/util/TreeMap.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/share/classes/java/util/TreeMap.java b/src/share/classes/java/util/TreeMap.java index 52d9df25a0..9a4681d771 100644 --- a/src/share/classes/java/util/TreeMap.java +++ b/src/share/classes/java/util/TreeMap.java @@ -973,6 +973,27 @@ public class TreeMap<K,V> } @Override + public boolean replace(K key, V oldValue, V newValue) { + Entry<K,V> p = getEntry(key); + if (p!=null && Objects.equals(oldValue, p.value)) { + p.value = newValue; + return true; + } + return false; + } + + @Override + public V replace(K key, V value) { + Entry<K,V> p = getEntry(key); + if (p!=null) { + V oldValue = p.value; + p.value = value; + return oldValue; + } + return null; + } + + @Override public void forEach(BiConsumer<? super K, ? super V> action) { Objects.requireNonNull(action); int expectedModCount = modCount; |