aboutsummaryrefslogtreecommitdiff
path: root/src/share/classes/java/util/TreeMap.java
diff options
context:
space:
mode:
authormduigou <none@none>2013-08-21 12:03:19 -0700
committermduigou <none@none>2013-08-21 12:03:19 -0700
commit0b5fb01b5f96882dac22891c459bf1dc9995dd79 (patch)
tree3fcd426a768fab51facd915a620c5725b1e7a2e2 /src/share/classes/java/util/TreeMap.java
parent55c6357489f23e0ecab3ce0db215816b3c519b44 (diff)
downloadjdk8u_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.java21
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;